我有一个用户的集合,每个用户都有纬度和经度点。
我想计算给定的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中实现这一点,但如果在查询中进行编码会更好。
答案 0 :(得分:2)
Mongo不像你在sql世界中那样提供简单的字段操作。一些geospatial results give you back the distance也是如此,但是对于你想要的任务,我宁愿在之后进行这个计算。有一个question on SO可以完美地定位您,在许多答案中我提供了optimized javascript解决方案。