我正在尝试找出一种对两个集合进行地理查询的方法:
Person {name, age, groupid}
Groups (id, name, geoLocation[x,y])
我需要找到所有附近的团体age > 18
知道如何在不必查询每个找到的人的组的情况下做到这一点吗?
您在 MongoDB 中没有连接,因此您需要找到另一种解决方法。
我会想到的下一个可行的方法是将一组年龄范围与组记录一起存储:
{
_id: {},
name: {},
geoLocation: {},
age_groups: {
'gt18': 1
},
}
然后我会查询那个age_groups.gt18 字段并提取所有记录。当然,这确实意味着您将需要一些东西来使该字段保持最新。有几种方法:
我个人会选择基于事件的预先聚合的做事方法