如何使用自定义函数mongodb

时间:2016-11-05 11:16:31

标签: javascript mongodb function user-defined-functions

我正在尝试在mongodb中使用自定义函数来计算某些值,但不知道如何使用它。 有avgStartLongitude,avgStartLatitudes,avgEndLongitude和avgEndLatitude。由一项活动分组。它显示了在某处开始和结束的活动的位置。我需要通过使用函数来计算它们之间的距离。

这是需要进行计算的集合:http://prntscr.com/d3cn4m

以下代码显示(以某种方式不起作用)我如何尝试使用该函数来计算:

function calcDistance(lat1, lon1, lat2, lon2) {
var R = 6371; // Radius of the earth in km
  var dLat = (lat2 - lat1) * Math.PI / 180;  // deg2rad below
  var dLon = (lon2 - lon1) * Math.PI / 180;
  var a = 
     0.5 - Math.cos(dLat)/2 + 
     Math.cos(lat1 * Math.PI / 180) * Math.cos(lat2 * Math.PI / 180) * 
     (1 - Math.cos(dLon))/2;

  return (R * 2 * Math.asin(Math.sqrt(a)))<100;
};

db.opg3.aggregate(
{
    $project:
    {
        activityType:"$_id",
        avgDistance:"$calcDistance($avgStartLat,$avgStartLon,$avgEndLat,$avgEndLon)"
        
    }
    
}
)

代码不返回avgDistance。事实上,它似乎什么都不做,我不知道如何让它发挥作用..

关于如何使用此功能的任何想法?

谢谢!

0 个答案:

没有答案