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_filedfeatures条件をオンfeature_fieldにしてクエリを実行しますplace_id(1で見つかったものに限定してください)。- アプリケーションコードの結果を制限します
私の質問は:そのようなタスクへのより良いアプローチはありますか?現在、mongolimit()関数を使用できません。これを実行placesすると、2番目のクエリを実行する必要があるため、結果が少なすぎる可能性があります。結果はランダムな順序で表示されるため、2番目のクエリを実行できませんlimit()。距離で並べ替えたいと思います。
1つのドキュメントにデータを入れることができることは知っていますが、リストfeaturesが長くなり、BSONのサイズ制限を超える可能性があると思います。