请参见下面的 shell 示例(假设 db.test 不存在):
db.test.ensureIndex({info: 1, _id: 1})
db.test.insert({info: "info1"})
db.test.insert({info: "info2"})
db.test.insert({info: "info3"})
db.test.find({info: "info1"}).explain().indexOnly //is false
db.test.find({info: "info1"}, {_id: 1, info: 1}).explain().indexOnly //is true
第一个explain
有indexOnly : false
,而第二个有,indexOnly : true
尽管这两个查询是严格等价的。
为什么没有db.test.find({info: "info1"})
覆盖查询?