【问题标题】:Mongodb Query for finding distance between latitude and longitude pointsMongodb查询经纬度点之间的距离
【发布时间】:2015-07-16 03:41:58
【问题描述】:

我有一个用户的集合,其中包含每个用户的纬度经度点。

我想计算给定 Lat、long 值和 用户的位置。

在 MYSQL 中有一个查询

SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < 25 ORDER BY distance LIMIT 0 , 20;

mongodb中是否有任何等效的方法/查询?有一些方法可以在 Javascript 中完成此操作,但如果在 Query 中编码会更好。

【问题讨论】:

标签: mongodb mongoose geolocation geocoding mongodb-query


【解决方案1】:

Mongo 不像在 sql 世界中那样为您提供简单的字段操作。一些geospatial results give you back the distance 也是如此,但是对于您想要的任务,我宁愿在之后进行此计算。有一个 question on SO 完美地针对您,在许多答案中,我给出了一个 optimized javascript 解决方案。

【讨论】:

  • 感谢您的链接。问题是我在两个不同的字段中保存了 Long 和 lat 值。后来我意识到并更新为 [long,lat]。这很有效,并且 JavaScript 函数非常简单易懂。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-13
  • 2012-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多