请参见下面的 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"}) 覆盖查询?