sealed trait UpdateBuilder extends AnyRef
Builder for update operations.
Linear Supertypes
Ordering
- Alphabetic
- By Inheritance
Inherited
- UpdateBuilder
- AnyRef
- Any
Implicitly
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
Visibility
- Public
- Protected
Abstract Value Members
- abstract def bypassDocumentValidation: Boolean
the flag to bypass document validation during the operation
- abstract def ordered: Boolean
the ordered behaviour
- abstract def writeConcern: commands.WriteConcern
the writer concern to be used
Concrete Value Members
- final def element[Q, U](q: Q, u: U, upsert: Boolean, multi: Boolean, collation: Option[Collation], arrayFilters: Seq[P.Document])(implicit qw: P.Writer[Q], uw: P.Writer[U]): Future[UpdateCommand.UpdateElement]
Prepares an UpdateCommand.UpdateElement
Prepares an UpdateCommand.UpdateElement
- Annotations
- @silent("constructor\\ UpdateElement\\ in\\ class\\ UpdateElement\\ is\\ deprecated.*")
- final def element[Q, U](q: Q, u: U, upsert: Boolean, multi: Boolean, collation: Option[Collation])(implicit qw: P.Writer[Q], uw: P.Writer[U]): Future[UpdateCommand.UpdateElement]
Prepares an UpdateCommand.UpdateElement
- final def element[Q, U](q: Q, u: U, upsert: Boolean = false, multi: Boolean = false)(implicit qw: P.Writer[Q], uw: P.Writer[U]): Future[UpdateCommand.UpdateElement]
Prepares an UpdateCommand.UpdateElement
- final def many(updates: Iterable[UpdateCommand.UpdateElement])(implicit ec: ExecutionContext): Future[MultiBulkWriteResult]
Updates many documents, according the ordered behaviour.
Updates many documents, according the ordered behaviour.
import scala.concurrent.{ ExecutionContext, Future } import reactivemongo.api.bson.BSONDocument import reactivemongo.api.bson.collection.BSONCollection def updateMany( coll: BSONCollection, docs: Iterable[BSONDocument])(implicit ec: ExecutionContext) = { val update = coll.update(ordered = true) val elements = Future.sequence(docs.map { doc => update.element( q = BSONDocument("update" -> "selector"), u = BSONDocument(f"$$set" -> doc), upsert = true, multi = false) }) elements.flatMap { ups => update.many(ups) // Future[MultiBulkWriteResult] } }
- final def many(firstUpdate: UpdateCommand.UpdateElement, updates: Iterable[UpdateCommand.UpdateElement])(implicit ec: ExecutionContext): Future[MultiBulkWriteResult]
Updates many documents, according the ordered behaviour.
Updates many documents, according the ordered behaviour.
import scala.concurrent.{ ExecutionContext, Future } import reactivemongo.api.bson.BSONDocument import reactivemongo.api.bson.collection.BSONCollection def updateMany( coll: BSONCollection, first: BSONDocument, docs: Iterable[BSONDocument])(implicit ec: ExecutionContext) = { val update = coll.update(ordered = true) val elements = Future.sequence(docs.map { doc => update.element( q = BSONDocument("update" -> "selector"), u = BSONDocument(f"$$set" -> doc), upsert = true, multi = false) }) for { first <- update.element( q = BSONDocument("update" -> "selector"), u = BSONDocument(f"$$set" -> first), upsert = true, multi = false) ups <- elements res <- update.many(ups) // Future[MultiBulkWriteResult] } yield res }
- final def one[Q, U](q: Q, u: U, upsert: Boolean, multi: Boolean, collation: Option[Collation], arrayFilters: Seq[P.Document])(implicit ec: ExecutionContext, qw: P.Writer[Q], uw: P.Writer[U]): Future[UpdateWriteResult]
Performs a single update (see UpdateCommand.UpdateElement).
- final def one[Q, U](q: Q, u: U, upsert: Boolean, multi: Boolean, collation: Option[Collation])(implicit ec: ExecutionContext, qw: P.Writer[Q], uw: P.Writer[U]): Future[UpdateWriteResult]
Performs a single update (see UpdateCommand.UpdateElement).
- final def one[Q, U](q: Q, u: U, upsert: Boolean = false, multi: Boolean = false)(implicit ec: ExecutionContext, qw: P.Writer[Q], uw: P.Writer[U]): Future[UpdateWriteResult]
Performs a single update (see UpdateCommand.UpdateElement).