如果我有以下收藏
{ "_id" : "a" }
{ "_id" : "b" }
{ "_id" : "c" }
如果我现在运行以下查询
db.test.find({_id: "a"}, {_id: 1}).explain("executionStats")
返回
"executionStats" : {
"totalKeysExamined" : 1,
"totalDocsExamined" : 1
}
现在为了奇怪的部分。如果我运行以下查询
db.test.find({_id: "a"}, {_id: 1}).hint({_id: 1}).explain("executionStats")
返回
"executionStats" : {
"totalKeysExamined" : 1,
"totalDocsExamined" : 0
}
为什么普通查询检查文档,即使我只想要_id?
服务器版本:v3.2.1
答案 0 :(得分:0)
您正在做的是您通常使用_id索引而不是通过集合。您可以使用
查看索引collection.getIndexes()
从这个意义上讲,mongo服务器(查询优化器)使用了指定的索引(_id),而不必通过集合
跳跃帮助