gpt4 book ai didi

mongodb查询不使用索引

转载 作者:搜寻专家 更新时间:2023-10-30 22:35:36 25 4
gpt4 key购买 nike

我有一个索引:

{
"sourceName" : 1,
"addedDate" : 1,
"sourceKey" : 1,
"appKey" : 1,
}

但是当我尝试做的时候

db.myCollection.find({and:[
{sourceName: "mySourceName"},
{addedDate: 1414878162405},
{sourceKey:"mySource Key"},
{appKey: "test"}]
}).explain()

它显示游标是 BasicCursor 即它没有使用索引:

{
"cursor" : "BasicCursor",
"isMultiKey" : false,
"n" : 0,
"nscannedObjects" : 500,
"nscanned" : 500,
"nscannedObjectsAllPlans" : 500,
"nscannedAllPlans" : 500,
"scanAndOrder" : false,
"indexOnly" : false,
...
}

谁能解释一下为什么我的查询没有使用定义的索引?

最佳答案

您的查询对象使用 and 而不是 $and 运算符,因此它在包含您的查询值的文档中查找名为“and”的字段。

但是你不需要使用 $and ,因为多个查询词是隐式的 ANDed 所以你可以这样做:

db.myCollection.find({
sourceName: "mySourceName",
addedDate: 1414878162405,
sourceKey:"mySource Key",
appKey: "test"}
}).explain()

那应该能够很好地使用您的索引。

关于mongodb查询不使用索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37844166/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com