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:为什么不按多个键排序使用索引?例如

我还听说过 explain(true) 在这里根本没有记录的地方:

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

4

2 回答 2

2

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

只有在使用 BtreeCursor 时才会显示索引名称。

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

于 2012-09-11T13:09:07.603 回答
2

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

于 2012-09-11T13:28:46.797 回答