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

用于查找经纬度点之间距离的Mongodb查询,mongodb,mongoose,geolocation,geocoding,mongodb-query,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

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

我想计算给定的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;
选择id,(3959*acos(cos(弧度(37))*cos(弧度(lat))*cos(弧度(lng)-弧度(-122))+sin(弧度(37))*sin(弧度(lat)))作为与距离限制为0,20的距离小于25阶的标记的距离;

mongodb中是否有任何等效的方法/查询?有很多方法可以在Javascript中实现这一点,但如果在查询中进行编码会更好。

Mongo并不像sql世界那样为您提供简单的字段操作。也有一些,但对于您想要的任务,我宁愿在以后进行此计算。有一个非常适合您的解决方案,我给出了许多答案。

感谢您的链接。问题是我在两个不同的字段中保存了Long和lat值。后来我意识到并更新到[long,lat]。这是可行的,JavaScript函数非常简单易懂。非常感谢。