2011-06-27 45 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(); 

在您執行您的功能之前。