sql >> Databasteknik >  >> NoSQL >> MongoDB

I ReactiveMongo 0.18.8, hur kan jag utföra en uppdatering av flera dokument, med olika värden, i ett enda kommando?

I dokumentationen du kan se exempel på massoperationer för att infoga, uppdatera eller ta bort.

import scala.concurrent.Future
import scala.concurrent.ExecutionContext.Implicits.global

import reactivemongo.api.bson.BSONDocument

import reactivemongo.api.bson.collection.BSONCollection

def updateWithBulk(personColl: BSONCollection) = {
  // Bulk update: multiple update
  val updateBuilder1 = personColl.update(ordered = true)
  val updates = Future.sequence(Seq(
    updateBuilder1.element(
      q = BSONDocument("firstName" -> "Jane", "lastName" -> "Doh"),
      u = BSONDocument("age" -> 18),
      upsert = true,
      multi = false),
    updateBuilder1.element(
      q = BSONDocument("firstName" -> "Bob"),
      u = BSONDocument("age" -> 19),
      upsert = false,
      multi = true)))

  updates.flatMap { ops => updateBuilder1.many(ops) }
}



  1. Skicka en referens till en Redis-instans till en Gorilla/Mux-hanterare

  2. Hur man $lookup med pipeline &låter parametrar i C# (MongoDB.Driver 2.7.2)

  3. Mongo-aggregation:dela upp värden i grupper (efter partition)

  4. Misslyckad global initiering:BadValue logpath kräver en absolut filsökväg med Windows-tjänster