ロケーションプロパティに地理空間インデックスを持つ店舗のコレクションがあります。
私がやろうとしているのは、ユーザーの緯度、緯度、および検索半径 (mi) を指定して、それらのパラメーター内にある店舗のリストを返したいということです。
MongoDB ドキュメント ( http://www.mongodb.org/display/DOCS/Geospatial+Indexing ) で次の例を見ましたが、距離はラジアン単位のようです。
center = [50, 50]
radius = 10
db.places.find({"loc" : {"$within" : {"$center" : [center, radius]}}})
では、マイルをラジアンに変換する式は何ですか?
解決法 mongodb-user のすばらしい人たちが、答えを見つけるのを手伝ってくれました。基本的に、私が本当に探していたのは、距離を制限する方法でした.
更新されたドキュメントによると、$near クエリには 3 番目のパラメーターがあります。最大距離で $near を使用することもできます。
db.places.find( { loc : { $near : [50,50] , $maxDistance : 5 } } ).limit(20)
$maxDistance の値はラジアンです。そのため、距離をマイルで取り、69 で割る必要がありました。
ありがとうございました!