2013-10-08 114 views

回答

2

是的,MongoDB可以使用複合索引對索引鍵進行反向排序。

如果你有一個複合索引:

db.test.ensureIndex({a: -1, b: -1, c: -1}) 

explain結果表明,BTreeCursor使用

db.test.find().sort({a: 1, b:1, c:1}).explain() 

     "cursor" : "BtreeCursor a_-1_b_-1_c_-1 reverse", 
     "isMultiKey" : false, 
     "n" : 11, 
     "nscannedObjects" : 11, 
     "nscanned" : 11, 
     "nscannedObjectsAllPlans" : 11, 
... 

複合索引將被使用,如果你顛倒所有的排序順序的索引前綴。

但是,db.test.find().sort({a:1, b: 1, c: -1})將不能使用索引,因此將使用BasicCursor

相關問題