【问题标题】:python: query mongodb database to find nearest neighbors of a coordinate?python:查询 mongodb 数据库以查找坐标的最近邻居?
【发布时间】:2015-07-11 03:08:08
【问题描述】:

我使用的是 mongodb(2.6 版),我所有的坐标数据都保存为 GeoJSON 格式。现在我想查询数据库以找到特定坐标的 10 个最近邻。

我想使用在 mongodb 中定义的 $near,但是,我注意到这仅返回由 minDistance 和 maxDistance 指定的区域中的最近邻,即,对于不同的坐标,最近邻的数量可能不同。但是,我只想为每个点获取 10 个最近的邻居,有人知道这样做的好方法吗?

【问题讨论】:

标签: python mongodb nearest-neighbor


【解决方案1】:
  1. 将 maxDistance 设置为一个非常大的值,例如20000*1000 米,将您的视野扩大到整个地球。

http://geography.about.com/library/faq/blqzcircumference.htm

  1. 现在使用 $near 运算符,$limit = 10。 无论距离多远,您都会得到 10 个最近的邻居。

the_collection.find({'loc_field': {'$near': {'$maxDistance':> 20000*1000,
'$geometry': geometry_of_the_coordinate}}).limit(10)

【讨论】:

  • Pathak 听起来很酷,对了,应该是 20000*1000 而不是 10000,对吧
  • 是的。我对零的错误,应该是2万公里*1000转换成米
  • 哦,顺便说一句,limit(10) 应该放在最后,对吧?否则有不平衡括号
  • limit()是否只对mongodb版本>3.0有效?在我的情况下它不起作用并返回所有数据>
猜你喜欢
  • 2020-11-05
  • 1970-01-01
  • 1970-01-01
  • 2011-02-01
  • 1970-01-01
  • 2018-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多