place
地理情報を含むmongodbオブジェクトをいくつか呼び出しましょう。例を見てください。
{
"_id": "234235425e3g33424".
"geo": {
"lon": 12.23456,
"lat": 34.23322
}
"some_field": "value"
}
ごとplace
に、機能のリストは次のものに関連付けられています。
{
"_id": "2334sgfgsr435d",
"place_id": "234235425e3g33424",
"feature_field" : "some_value"
}
ご覧のとおり、フィールドのおかげで機能は場所にリンクされていplace_id
ます。今私は見つけたいです:features
最も近いと接続されたリストplaces
。ただし、とに検索条件も追加したいと思いplace.some_field
ますfeature.feature_field
。そして、重要なことは結果を制限したいと思います。
今、私はそのようなアプローチを使用しています:
places
条件をオンgeo
にしてクエリを実行しますsome_filed
features
条件をオンfeature_field
にしてクエリを実行しますplace_id
(1で見つかったものに限定してください)。- アプリケーションコードの結果を制限します
私の質問は:そのようなタスクへのより良いアプローチはありますか?現在、mongolimit()
関数を使用できません。これを実行places
すると、2番目のクエリを実行する必要があるため、結果が少なすぎる可能性があります。結果はランダムな順序で表示されるため、2番目のクエリを実行できませんlimit()
。距離で並べ替えたいと思います。
1つのドキュメントにデータを入れることができることは知っていますが、リストfeatures
が長くなり、BSONのサイズ制限を超える可能性があると思います。