为什么我看不到mongodb使用的索引的名称?

时间:2012-09-11 12:53:03

标签: mongodb indexing

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: why doesn't sorting by multiple keys use an index?例如

我也听说过某些地方的解释(真实),这里没有记载:

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

2 个答案:

答案 0 :(得分:2)

我不确定它是故意还是缺陷,但是当使用地理空间索引时,所使用的索引名称不会显示在解释计划中。

仅在使用BtreeCursor时才显示索引名称。

如上面的评论中所述,集合上只能有一个地理空间索引。在此参数下,您可以假设如果光标是“GeoSearchCursor”,则它正在使用您希望此集合的索引。

答案 1 :(得分:2)

这是一个已知问题。请参阅https://jira.mongodb.org/browse/SERVER-4213