に一致する私は以下のようなレコードコレクションのMongoDB(3.4)で文書を持っている: -
{
"_id" : ObjectId("592d0c78555a7436b0883960"),
"userid" : 7,
"addresses" : [
{
"apporx" : 50.0,
"loc" : [
-73.98137109999999,
40.7476039
]
},
{
"apporx" : 15.0,
"loc" : [
-73.982002,
40.74767
]
},
{
"apporx" :10.0,
"loc" : [
-73.9819567,
40.7471609
]
}
]
}
`
I created index on this collection using below query :-
`db.records.createIndex({'addresses.loc':1})`
when i execute my below query :-
`db.records.aggregate(
{$geoNear : {
near : [ -73.9815103, 40.7475731 ],
distanceField: "distance"
}});
この結果は、あなたがこの複数の私の文書アドレスアレイで私を説明することができます私の距離field.nowを与えます要素が存在する。どのような要素がこの結果に当てはまるかはどうすれば判断できますか?
もう1つの質問: - 私が "addresses.apporx"の条件をより大きく、または同等にすると、この条件の場所を見つける方法はありますか?
がyou..Myをありがとう最初の質問は解決されました。しかし、私のもう一つの質問: - 私は "アドレス.apporx"の条件をより大きいか等しいようにすれば、この状態の場所を見つける方法はありますか? – 5a01d01P
@SandipKumarあなたは何を意味しているのか、それは異なる質問かもしれません。しかし、ドキュメントに投影されている "distanceFieldと比較する" *を意味する場合、上記のように、別のパイプラインステージを追加して2つの値を比較します。このために '$ project'と' $ redact'で遊んで、 '$ geoNear'マニュアルページから" distanceField "のドキュメントを読んでください。 –
@SandipKumar "距離"のその点について。 GeoJSON形式は、従来の「配列」形式よりも優れているでしょう。その理由は、「距離」が「遺産」から返された距離が**ラジアン**であり、キロメートルと言う変換が必要なためです。 GeoJSONの座標を比較すると** meters **で結果が一貫して返されます。だから、おそらく "記憶された距離"とより一貫しているだろう。 –