2011-10-20 42 views
0

我在這裏添加索引:爲什麼這個mongo索引不起作用?

db.products.ensureIndex({current_features:1}) 

但後來它不會出現在這裏的任何影響:

db.products.find({"current_features" : {"$exists" : true}}).explain() 
{ 
    "cursor" : "BasicCursor", 
    "nscanned" : 20995, 
    "nscannedObjects" : 20995, 
    "n" : 2, 
    "millis" : 94, 
    "nYields" : 0, 
    "nChunkSkips" : 0, 
    "isMultiKey" : false, 
    "indexOnly" : false, 
    "indexBounds" : { 

    } 
} 

回答

2

您所要求的具有特定領域,蒙戈使用的每條記錄這是自2.0版以來的索引,來自文檔:

在v2.0之前,$ exists不能使用索引。其他 字段上的索引仍被使用。

您應該改用sparse index。稀疏索引基本上只索引具有索引字段的文檔。所以你的查詢將被預先計算,以確保最高速度。