Mongodb查询用于查找纬度和经度点之间的距离

时间:2015-05-06 06:42:22

标签: mongodb mongoose geolocation geocoding mongodb-query

我有一个用户的集合,每个用户都有纬度经度点。

  

我想计算给定的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中实现这一点,但如果在查询中进行编码会更好。

1 个答案:

答案 0 :(得分:2)

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