Mongo用户定义函数和Map Reduce

时间:2011-06-27 10:53:27

标签: mongodb mapreduce user-defined-functions

mongo中有没有办法创建用户定义的Javascript函数。我在客户端有几个Map / Reduce功能,我想在其他MR功能中使用。

例如,几个MR函数计算各种平均值。我希望能够像这样使用它们:

function reduce(k,v)
{
    if (val > myDatabaseAverage())
    // ..do something
}

2 个答案:

答案 0 :(得分:11)

使用db.system.js.save({_ id:“myDatabaseAverage”,value:function(){// ..do something}});

这将把JS函数存储在服务器上,并且可以从那时起通过m / r访问。

有关更多示例,请参阅:https://github.com/mongodb/mongo/blob/master/jstests/storefunc.js

答案 1 :(得分:0)

如@Remon van Vliet所述,

你必须使用,

db.system.js.save( { _id : "myDatabaseAverage" , 
                     value : function(){ // ..do something } 
                 } );

首先保存您的功能,

然后你需要打电话,

db.loadServerScripts();

在执行你的功能之前。