2012-09-11 2 views
1
db.tablebusiness.find({ "LongitudeLatitude" : { "$nearSphere" : [106.772835, -6.186753], "$maxDistance" : 0.053980478460939611 }, "Prominent" : { "$gte" : 15 }, "indexContents" : { "$all" : [/^soto/, /^nasi/] } }).limit(200).explain(); 




{ 
     "cursor" : "GeoSearchCursor", 
     "nscanned" : 48, 
     **"nscannedObjects" : 48,** 
     "n" : 48, 
     "millis" : 8563, 
     "nYields" : 0, 
     "nChunkSkips" : 0, 
     "isMultiKey" : false, 
     "indexOnly" : false, 
     "indexBounds" : { 
     } 
} 
> 

그래서 인덱스의 이름은 무엇입니까? 나는 인덱스의 이름이 나타나는 몇 가지 질문을 보았다. 나는 또한 단순히 여기에 문서화 아니에요 설명 (참) 어딘가에 들었어요mongodb에서 사용하는 색인의 이름을 볼 수없는 이유는 무엇입니까?

예를 들어 여기 MongoDB: why doesn't sorting by multiple keys use an index?보세요 :

http://www.mongodb.org/display/DOCS/Explain

+0

참고를 참조하십시오. 즉, "GeoSearchCursor"가 해당 색인을 사용해야합니다. –

+0

잠깐. 눈에 띄는 점으로 검색 할 때가 있고 제목으로 점을 검색하려는 경우가 있습니다. 서로 다른 두 조합에 속하는 2 개의 지리 공간 색인이 필요합니다. –

답변

2

가 의도적 나 만약 내가 확실 해요 결함하지만 때 지형 공간 인덱스가 사용되는 경우, 사용 된 인덱스의 이름은 Explain 플랜에 표시되지 않습니다.

BtreeCursor를 사용하는 경우에만 인덱스 이름 쇼입니다.

바와 같이 집합에 하나의 지리 인덱스가있을 수 있으며, 상기 코멘트에 주목했다. 이 매개 변수 아래에는 커서가 "GeoSearchCursor"이면 것을 당신이이 컬렉션에 대해 원하는 인덱스를 사용하고 있음을 가정 할 수있다.

관련 문제