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を使用する場合にのみ、インデックス名が表示されます。

上記のコメントで述べたように、コレクションには1つの地理空間インデックスしか存在できません。このパラメーターでは、カーソルが「GeoSearchCursor」の場合、このコレクションに必要なインデックスを使用していると見なすことができます。

于 2012-09-11T13:09:07.603 に答える
2

これは既知の問題です。https://jira.mongodb.org/browse/SERVER-4213を参照してください

于 2012-09-11T13:28:46.797 に答える