2012-04-15 5 views
2

MongoDBでコマンドラインクライアントを使って関数を定義しました。Casbah/Scalaを使ってMongoDBでカスタム関数を実行

function something(){...} 

私はどのように私はスカラ座からのカスバを使用してカスタムMongoDBの機能を実行することができます思っていました。

推奨事項

おかげで、

答えて

0

あなたはJavaScriptで書かれたMapReduceジョブ、について話していますか?もしそうなら、コレクションの方法は.mapReduce(...)ですが、map、reduce、finalizeの各関数を指定する必要があります。
Here is the example

あなたが任意のJavaScriptコードを実行することについて話しているなら、それは不可能だと思います(なぜオブジェクト操作にスカラを使用しないのですか?)。

2

サーバー上で任意のjavascriptコードを実行する方法はいくつかあります。あなたは クライアントから、それを文字列として供給し、評価のためにサーバーに送信、またはここに記載されているように、最初のサーバー 上の機能をインストールすることができます。 http://docs.mongodb.org/manual/core/server-side-javascript/

サーバ側の関数は、DBごとに登録されている中で、 system.jsというコレクション。ここに示されているよう

いずれかの方法、あなたがして、あなたのコードを呼び出すためにdb.eval()コマンドを使用することができます。

/* Call like so: 
    evalJavascript(myDB, "function (oid) { return coll.find({_id: oid}); }", someObjectId) 
*/ 
def evalJavascript(db:MongoDB, func: String, args: String*): Validation[String, Object] = { 
    val result = db.command(Map(
    "eval" -> func, 
    "args" -> args.toList 
)); 

    if (result.ok) { 
    result.get("retval").success 
    } else { 
    result.getErrorMessage().failure 
    } 
} 
関連する問題