0

特定の半径(km /マイル)内のレコードを取得しようとしています。

mongodb 2dインデックス:

db.collection.ensureIndex({locaction:"2d"})

コレクション内のレコードには、インデックス付きのキーがあります。

"location" : { "longitude" : 34.791592164168, "latitude" : 32.0516908 0405 }

シェルからコレクションのgetIndexes()を呼び出すと、次のようになります。

       ...{
           "v" : 1,
           "key" : {
                   "location" : "2d"
           },
           "ns" : "events.events",
           "name" : "location_2d"
   }...

上記のすべてにもかかわらず、このコマンドでレコードをフェッチしようとすると失敗します。

> db.events.find({location:{ $near :{ longitude:34,latitude:32},$maxDistance:10 / 3963.192}})

誰もがこれが機能するのを妨げるものを指摘できますか?

4

1 に答える 1

2

私の知る限り、$near2つのターゲット値の配列を取るので、値を配列で指定してみてください:-

db.events.find({location:{ $near : [34, 32],$maxDistance:10 / 3963.192}})
于 2012-12-16T15:57:00.610 に答える