2011-06-27 15 views
2

ユーザー定義のJavascript関数を作成する方法がmongoにありますか。クライアント側には、他のMR機能で使用したいMap/Reduce機能がいくつかあります。Mongoユーザー定義関数とマップ縮小

たとえば、いくつかのMR関数はすべての種類の平均を計算します。私はそうのようにそれらを使用することができるようにしたい:

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

答えて

11

使用db.system.js.save({_id: "myDatabaseAverage"、値:関数(){// ..do何か}});

これはJS機能をサーバーに保存し、その時点からm/rでアクセスできます。さらに例については

参照:https://github.com/mongodb/mongo/blob/master/jstests/storefunc.js

+0

代わりに "myDatabaseAverage"にする必要がありますか? –

+0

@コンスタンティンそれは、それを修正する必要があります、ありがと;) –

0

@RemonバンVlietで述べたように、

あなたが最初にあなたの関数を保存するために

db.system.js.save({ _id : "myDatabaseAverage" , 
        value : function(){ // ..do something } 
       }); 
を使用する必要があります、

と電話する必要があります。

db.loadServerScripts(); 
関数を実行する前に、

を入力してください。