在searchqueries mongodb中执行数学运算

在searchqueries mongodb中执行数学运算,mongodb,mongodb-query,nosql,Mongodb,Mongodb Query,Nosql,有没有一种方法可以在find函数中尽可能地执行数学运算 MySQL?我有以下sql查询,用于基于 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 <

有没有一种方法可以在find函数中尽可能地执行数学运算 MySQL?我有以下sql查询,用于基于 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(弧度(37))*cos(弧度(纬度))*cos(弧度(lng)-弧度(-122))+sin(弧度(37))*sin(弧度(纬度)))
作为距离
从标记
距离小于25的
按距离排序
限值0,20;
并且希望能够在mongodb或node.js中执行类似的操作。
这可能吗?

MongoDB查询语言和聚合框架只有非常有限的数学运算符

但是MongoDB可以使用任意Javascript函数来使用-运算符过滤结果。这允许您创建条件非常复杂的find查询。但是请记住,这种方法非常慢(尽管不一定比SQL慢很多)


但是看看你的列名,你似乎在处理地理数据。使用此选项也可能是一种选择,它比直接处理三角函数更快、更易于使用。

我认为没有办法做到这一点。但是在查询之后,您总是可以进行计算,对吗?不,但是您可能想看看MongoDB对的本机支持,因为这可能是处理查询的更好方法。