MongoDBでコマンドラインクライアントを使って関数を定義しました。Casbah/Scalaを使ってMongoDBでカスタム関数を実行
function something(){...}
私はどのように私はスカラ座からのカスバを使用してカスタムMongoDBの機能を実行することができます思っていました。
推奨事項
おかげで、
MongoDBでコマンドラインクライアントを使って関数を定義しました。Casbah/Scalaを使ってMongoDBでカスタム関数を実行
function something(){...}
私はどのように私はスカラ座からのカスバを使用してカスタムMongoDBの機能を実行することができます思っていました。
推奨事項
おかげで、
あなたはJavaScriptで書かれたMapReduceジョブ、について話していますか?もしそうなら、コレクションの方法は.mapReduce(...)
ですが、map、reduce、finalizeの各関数を指定する必要があります。
Here is the example。
あなたが任意のJavaScriptコードを実行することについて話しているなら、それは不可能だと思います(なぜオブジェクト操作にスカラを使用しないのですか?)。
サーバー上で任意の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
}
}