sql >> Databáze >  >> NoSQL >> MongoDB

Provádění vlastní funkce na MongoDB pomocí Casbah/Scala

Existuje několik způsobů, jak spustit libovolný javascriptový kód na serveru. Můžete jej zadat jako řetězec z klienta a odeslat jej na server k vyhodnocení, nebo funkci nainstalovat na server, jak je zdokumentováno zde:http://docs.mongodb.org/manual/core/server-side-javascript/

Funkce na straně serveru jsou registrovány po db v kolekci nazvané system.js.

V obou případech pak můžete pomocí příkazu db.eval() zavolat svůj kód, jak je znázorněno zde:

/* 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 agregační rámec $subtract

  2. mongodb indexy pokrývající chybějící hodnoty

  3. 5 způsobů, jak vložit dokumenty do MongoDB

  4. Nastavení Mongo dockeru se po restartu porouchalo (unifi ovladač na raspberry pi)