2011-06-27 25 views
2

mongo有没有一种方法来创建用户定义的Javascript函数。我在客户端有几个Map/Reduce功能,我想在其他MR功能中使用。Mongo用户定义函数和映射减少

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

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

回答

11

使用db.system.js.save({_id: “myDatabaseAverage”,值:函数(){// ..对}});

这将存储在服务器上的JS功能,并可以从m/r从该点访问。

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

+0

它应该不是“myDatabaseAverage”吗? –

+0

@Konstantin它应该改正它,谢谢;) –

0

正如@Remon凡弗利特提到,

你将不得不使用,

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

先保存功能,

和那么你需要拨打,

db.loadServerScripts(); 

在您执行您的功能之前。