2011-10-20 3 views
0

이 몽고 색인이 왜 작동하지 않습니까?

여기에 색인을 추가 할 예정입니다.

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

당신은 특정 필드, 몽고의 사용이있는 모든 튜플 요구됩니다

v2.0 이전 버전에서는 $ exists가 색인을 사용할 수 없습니다. 다른 필드의 색인은 계속 사용됩니다.

대신 sparse index을 사용해야합니다. 스파 스 색인은 기본적으로 색인 된 필드가있는 문서 만 색인합니다. 따라서 최대 속도를 보장하는 쿼리가 사전 계산됩니다.

관련 문제