MongoDB中是不是有类似反向地理空间查询的东西?

Posted

技术标签:

【中文标题】MongoDB中是不是有类似反向地理空间查询的东西?【英文标题】:Is there something like a reverse geospatial query in MongoDB?MongoDB中是否有类似反向地理空间查询的东西? 【发布时间】:2019-04-03 14:07:35 【问题描述】:

我有一个兴趣点列表,例如餐馆、剧院、花园等,保存在 Mongo 数据库中。然后,我有一个应用程序可以跟踪用户在城市中的活动并间歇性地收集位置。如果我发现某人“靠近”某个兴趣点,我需要向她/他发送通知。 POI 的“接近度”是一个变量 - 餐厅可能是 100m,剧院可能是 200m,花园可能是 20m,等等。

当然,每个兴趣点都保存为单独的文档。现在,有没有办法在 MongoDB 上使用人的纬度/经度触发查询并检索附近的 POI 列表?

说,我的文件是这样的:

“类型”:“餐厅”, "name": "宾尼的", "loc": [-122.10396, 37.45093], “最大距离”:100

“类型”:“博物馆”, “名称”:“里普利的”, "loc": [-122.24546, 37.48251], “最大距离”:500

我需要触发一个查询,为给定的纬度/经度值(例如 [-122.12098,37.46001])提供附近的 POI 列表(距离 POI 不超过 'maxDist' 米)。

有没有办法构造一个查询来实现这一点?如果我必须稍微改变一下文档结构,那很好。

提前致谢。

【问题讨论】:

【参考方案1】:

使用$near。它将允许您查询用户的位置以及特定距离内的所有位置。

【讨论】:

以上是关于MongoDB中是不是有类似反向地理空间查询的东西?的主要内容,如果未能解决你的问题,请参考以下文章

具有稀疏复合索引的 MongoDB $near 地理空间查询错误 13311

mongoDb地理空间索引和查询

如何在 MongoDB Java 中编写地理空间查询

地理空间查询是不是适用于数组? ($geoWithin, $geoIntersects)

多索引数据的mongodb地理空间查询

MongoDB 对地理空间查询的计数不准确