2
我試圖找出是否按降序排列_id字段利用系統自動創建的索引。我試圖用explain()來解決它,但我不確定。我應該在_id上創建一個額外的索引以降低數據返回速度?Mongo按降序排列_id是否利用自動索引或?
> db.foo.insert({ name: 'foo' }); > db.foo.insert({ name: 'bar' }); > db.foo.find(); { "_id" : ObjectId("5142d30ca4a8b347cb678c1a"), "name" : "foo" } { "_id" : ObjectId("5142d310a4a8b347cb678c1b"), "name" : "bar" } > db.foo.find().sort({ _id: -1 }); { "_id" : ObjectId("5142d310a4a8b347cb678c1b"), "name" : "bar" } { "_id" : ObjectId("5142d30ca4a8b347cb678c1a"), "name" : "foo" } > db.foo.find().sort({ _id: -1 }).explain(); { "cursor" : "BtreeCursor _id_ reverse", "isMultiKey" : false, "n" : 2, "nscannedObjects" : 2, "nscanned" : 2, "nscannedObjectsAllPlans" : 2, "nscannedAllPlans" : 2, "scanAndOrder" : false, "indexOnly" : false, "nYields" : 0, "nChunkSkips" : 0, "millis" : 0, "indexBounds" : { "_id" : [ [ { "$maxElement" : 1 }, { "$minElement" : 1 } ] ] }, "server" : "localhost:27017" }
太好了。現在,如果我向名稱字段添加索引並按_id按降序排序,它是否會利用_id上的索引或是否需要使用{name:1,_id:-1}創建新索引? – Glitches 2013-03-15 19:00:22
@Glitches目前您需要製作複合索引 – Sammaye 2013-03-15 21:35:37