sql >> Database teknologi >  >> NoSQL >> MongoDB

Udførelse af brugerdefineret funktion på MongoDB ved hjælp af Casbah/Scala

Der er et par måder at køre vilkårlig javascript-kode på serveren. Du kan levere den som en streng fra klienten og sende den til serveren til evaluering, eller installere funktionen på serveren først, som dokumenteret her:http://docs.mongodb.org/manual/core/server-side-javascript/

Server-side funktioner registreres pr. db, i en samling kaldet system.js.

Uanset hvad, kan du derefter bruge kommandoen db.eval() til at kalde din kode, som vist her:

/* 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. Hvis jeg har et mongo-dokument-id som en streng, hvordan forespørger jeg efter det som et _id?

  2. Konvertering af isodate til numerisk værdi

  3. $push og $set i samme MongoDB-opdatering

  4. MongoDB:Opdater hvert dokument på ét felt