2 つのコレクションを地理クエリする方法を見つけようとしています。
Person {name, age, groupid}
Groups (id, name, geoLocation[x,y])
次のような人がいる近くのグループをすべて見つける必要がありますage > 18
見つかった人ごとにグループを照会することなく、それを行う方法はありますか?
MongoDB には結合がないため、これを回避する別の方法を見つける必要があります。
私が考える次のもっともらしい方法は、年齢範囲の配列をグループ レコードに格納することです。
{
_id: {},
name: {},
geoLocation: {},
age_groups: {
'gt18': 1
},
}
次に、その age_groups.gt18 フィールドに対してクエリを実行し、すべてのレコードを抽出します。もちろん、これは、このフィールドを最新の状態に保つために何かが必要になることを意味します。いくつかの方法があります。
個人的には、イベントベースの事前集計方法を使用します