sql >> データベース >  >> NoSQL >> MongoDB

Casbah/Scalaを使用してMongoDBでカスタム関数を実行する

    サーバー上で任意の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
      }
    }
    


    1. MongoDBを使用して配列フィールド内の特定のキー/値を更新する

    2. MongoDB mapreduceで、valuesオブジェクトをフラット化するにはどうすればよいですか?

    3. node-mongoネイティブドライバーからdbのインスタンスを取得するにはどうすればよいですか?

    4. これは、ServiceStack REST APIでのRedisの良いユースケースですか?