【发布时间】:2019-10-05 06:05:05
【问题描述】:
我有一个名为社区的集合。社区有一个地理位置和一个半径。 假设用户想要加入一个社区,然后我会从数据库中获取他的地理位置(如果可用)或上次保存的位置。然后检查用户是否在社区范围内,然后允许他加入社区。 我拥有的唯一数据是用户位置,我必须找到该用户所在半径范围内的所有社区的列表。
【问题讨论】:
-
您能否添加
community和users集合中存在的数据样本?这将有助于社区成员尝试查询并以精确的方式回答您的问题。提前致谢! -
最小样本数据。 community.name = "Abcd"; community.geolocation = { 类型:“点”,坐标:[] }; community.radius = 10 // 公里。 user.geolocation = { 类型:“点”,坐标:[] };两者都是 2dsphere 索引。社区有名称、地理位置点坐标、半径。对于用户,我们只有他的 lng,lat。
-
这没有帮助。请从两个集合中添加 2 或 3 个文档
-
我认为不需要添加更多数据。对于这个查询,只有社区名称、地理位置点 lng& lat、半径是社区收集的足够数据。对于用户来说,只需考虑我们有他的 lng,lat 可供我们使用。使用用户的 lng、lat 查询社区集合 [name, geolocation (lng,lat), radius]。项目处于保密协议下,因此不能透露任何字段。
标签: node.js mongodb mongoose geolocation