sql >> Database >  >> NoSQL >> MongoDB

Hoe kan ik in ReactiveMongo 0.18.8 een update uitvoeren van meerdere documenten, met verschillende waarden, in een enkele opdracht?

In de documentatie u kunt voorbeelden zien van bulkbewerkingen om in te voegen, bij te werken of te verwijderen.

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. MongoDB replica hartslag verzoek tijd overschreden

  2. Waarom gooit PyMongo AutoReconnect?

  3. MongoDB atomaire update via 'merge' document

  4. Heb een probleem bij het splitsen en tellen van de gegevens in een CSV in MONGODB (Null-waarden hebben in kolommen zoals kolomnaam:)