我试图弄清楚按 _id 字段按降序排序是否利用了系统自动创建的索引。我试图使用 explain() 来解决这个问题,但我不确定。我应该按降序在 _id 上创建一个附加索引以更快地恢复数据吗?
> db.foo.insert({ name: 'foo' }); > db.foo.insert({ name: 'bar' }); > db.foo.find(); {“_id”:ObjectId(“5142d30ca4a8b347cb678c1a”),“名称”:“foo”} {“_id”:ObjectId(“5142d310a4a8b347cb678c1b”),“名称”:“酒吧”} > db.foo.find().sort({ _id: -1 }); {“_id”:ObjectId(“5142d310a4a8b347cb678c1b”),“名称”:“酒吧”} {“_id”:ObjectId(“5142d30ca4a8b347cb678c1a”),“名称”:“foo”} > db.foo.find().sort({ _id: -1 }).explain(); { "cursor" : "BtreeCursor _id_ reverse", “isMultiKey”:假, “n”:2, “nscannedObjects”:2, “nscanned”:2, “nscannedObjectsAllPlans”:2, “nscannedAllPlans”:2, “scanAndOrder”:假, “indexOnly”:假, “nYields”:0, “nChunkSkips”:0, “毫”:0, “索引边界”:{ “_ID” : [ [ { “$ 最大元素”:1 }, { “$minElement”:1 } ] ] }, “服务器”:“本地主机:27017” }