sealed abstract class BSONDocument extends BSONValue with ElementProducer with SafeProducer[BSONElement] with BSONDocumentLowPriority with BSONDocumentExperimental
A BSONDocument
structure (BSON type 0x03
).
A BSONDocument
is an unordered set of fields (String, BSONValue)
.
Note: The insertion/initial order of the fields may not be maintained through the operations.
- Self Type
- BSONDocument
- Alphabetic
- By Inheritance
- BSONDocument
- BSONDocumentExperimental
- BSONDocumentLowPriority
- SafeProducer
- ElementProducer
- Producer
- BSONValue
- AnyRef
- Any
- by identityValueProducer
- by valueProducer
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def elements: Seq[BSONElement]
The document fields as a sequence of BSONElements.
- abstract def headOption: Option[BSONElement]
The first/mandatory element, if any.
The first/mandatory element, if any.
import reactivemongo.api.bson.BSONDocument BSONDocument("foo" -> 1). headOption // Some(BSONInteger(1))
- abstract def isEmpty: Boolean
Indicates whether this document is empty
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- def +(other: String): String
- Implicit
- This member is added by an implicit conversion from BSONDocument toany2stringadd[BSONDocument] performed by method any2stringadd in scala.Predef.
- Definition Classes
- any2stringadd
- def ++(seq: BSONElement*): BSONDocument
Creates a new BSONDocument containing all the elements of this one and the specified element sequence.
Creates a new BSONDocument containing all the elements of this one and the specified element sequence.
import reactivemongo.api.bson.{ BSONDocument, BSONElement, BSONString } val doc = BSONDocument("foo" -> 1) doc ++ BSONElement("bar", BSONString("lorem")) // { 'foo': 1, 'bar': 'lorem' }
- def ++(doc: BSONDocument): BSONDocument
Returns the BSONDocument containing all the elements of this one and the elements of the given document.
Returns the BSONDocument containing all the elements of this one and the elements of the given document.
import reactivemongo.api.bson.BSONDocument val doc1 = BSONDocument("foo" -> 1) val doc2 = BSONDocument("bar" -> "lorem") doc1 ++ doc2 // { 'foo': 1, 'bar': 'lorem' }
- def ++(producers: ElementProducer*): BSONDocument
Creates a new BSONDocument containing all the elements of this one and the specified element producers.
Creates a new BSONDocument containing all the elements of this one and the specified element producers.
import reactivemongo.api.bson.BSONDocument val doc = BSONDocument("foo" -> 1) doc ++ ("bar" -> "lorem") // { 'foo': 1, 'bar': 'lorem' }
- Definition Classes
- BSONDocumentLowPriority
- def --(keys: String*): BSONDocument
Returns a set without the values corresponding to the specified keys.
Returns a set without the values corresponding to the specified keys.
import reactivemongo.api.bson.BSONDocument val doc = BSONDocument("foo" -> 1, "bar" -> "v") doc -- "bar" // { 'foo': 1 }
- def ->[B](y: B): (BSONDocument, B)
- Implicit
- This member is added by an implicit conversion from BSONDocument toArrowAssoc[BSONDocument] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def array(name: String): Option[Seq[BSONValue]]
EXPERIMENTAL: Returns the named element from the current document, if the element is an array field.
EXPERIMENTAL: Returns the named element from the current document, if the element is an array field.
- Definition Classes
- BSONDocumentExperimental
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- final def asOpt[T](implicit reader: BSONReader[T]): Option[T]
Optionally parses this value as a
T
one.Optionally parses this value as a
T
one.- returns
Some
successfully parsed value, orNone
if failsimport reactivemongo.api.bson.BSONValue def foo(v: BSONValue): Option[String] = v.asOpt[String]
- Definition Classes
- BSONValue
- Annotations
- @inline()
- def asStrict: Strict
EXPERIMENTAL: Returns a strict representation (with only the last value kept per each field name).
EXPERIMENTAL: Returns a strict representation (with only the last value kept per each field name).
reactivemongo.api.bson.BSONDocument( "foo" -> 1, "bar" -> 2, "foo" -> 3).asStrict // { 'foo': 3, 'bar': 2 }
- Definition Classes
- BSONDocumentExperimental
- final def asTry[T](implicit reader: BSONReader[T]): Try[T]
Tries to parse this value as a
T
one.Tries to parse this value as a
T
one.import scala.util.Try import reactivemongo.api.bson.BSONValue def foo(v: BSONValue): Try[String] = v.asTry[String]
- Definition Classes
- BSONValue
- def binary(name: String): Option[Array[Byte]]
EXPERIMENTAL: Returns the named element from the current document, if the element is a binary field.
EXPERIMENTAL: Returns the named element from the current document, if the element is a binary field.
- Definition Classes
- BSONDocumentExperimental
- def booleanLike(name: String): Option[Boolean]
EXPERIMENTAL: Returns the named element from the current document, if the element is a boolean-like field (numeric or boolean).
EXPERIMENTAL: Returns the named element from the current document, if the element is a boolean-like field (numeric or boolean).
- Definition Classes
- BSONDocumentExperimental
- val bsonType: String
The pretty type name
The pretty type name
- Definition Classes
- BSONDocument → BSONValue
- val byteCode: Byte
The code indicating the BSON type for this value as Byte
The code indicating the BSON type for this value as Byte
- Definition Classes
- BSONDocument → BSONValue
- def child(name: String): Option[BSONDocument]
EXPERIMENTAL: Returns the named element from the current document, if the element is a nested document.
EXPERIMENTAL: Returns the named element from the current document, if the element is a nested document.
- Definition Classes
- BSONDocumentExperimental
- def children(name: String): List[BSONDocument]
EXPERIMENTAL: Returns the named element from the current document, if the element is a list of nested documents.
EXPERIMENTAL: Returns the named element from the current document, if the element is a list of nested documents.
- Definition Classes
- BSONDocumentExperimental
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- val code: Int
The code indicating the BSON type for this value
The code indicating the BSON type for this value
- Definition Classes
- BSONDocument → BSONValue
- def contains(key: String): Boolean
Checks whether the given key is found in this element set.
Checks whether the given key is found in this element set.
import reactivemongo.api.bson.BSONDocument val doc = BSONDocument("foo" -> 1) doc.contains("foo") // true doc.contains("bar") // false
- key
the key to be found in the document
- returns
true if the key is found
- def double(name: String): Option[Double]
EXPERIMENTAL: Returns the named element from the current document, if the element is a double field.
EXPERIMENTAL: Returns the named element from the current document, if the element is a double field.
- Definition Classes
- BSONDocumentExperimental
- def ensuring(cond: (BSONDocument) => Boolean, msg: => Any): BSONDocument
- Implicit
- This member is added by an implicit conversion from BSONDocument toEnsuring[BSONDocument] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: (BSONDocument) => Boolean): BSONDocument
- Implicit
- This member is added by an implicit conversion from BSONDocument toEnsuring[BSONDocument] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean, msg: => Any): BSONDocument
- Implicit
- This member is added by an implicit conversion from BSONDocument toEnsuring[BSONDocument] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean): BSONDocument
- Implicit
- This member is added by an implicit conversion from BSONDocument toEnsuring[BSONDocument] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(that: Any): Boolean
- Definition Classes
- BSONDocument → AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def get(key: String): Option[BSONValue]
Returns the BSONValue associated with the given
key
.Returns the BSONValue associated with the given
key
. If the key cannot be found, returnsNone
.import reactivemongo.api.bson.BSONDocument val doc = BSONDocument("foo" -> 1) doc.get("foo") // Some(BSONInteger(1)) doc.contains("bar") // None
- key
the key to be found in the document
- final def getAsOpt[T](key: String)(implicit reader: BSONReader[T]): Option[T]
Returns the BSONValue associated with the given
key
, and converts it with the given implicit BSONReader.Returns the BSONValue associated with the given
key
, and converts it with the given implicit BSONReader.If there is no matching value (or value is a BSONNull), or the value could not be deserialized, or converted, returns a
None
.import reactivemongo.api.bson.{ BSONDocument, BSONNull } val doc = BSONDocument("foo" -> 1, "bar" -> BSONNull) doc.getAsOpt[Int]("foo") // Some(1) doc.getAsOpt[String]("foo") // None, as not a string doc.getAsOpt[Int]("lorem") // None, no 'lorem' key doc.getAsOpt[Int]("bar") // None, as `BSONNull`
- key
the key to be found in the document
- Note
When implementing a custom reader, getAsTry must be preferred.
- final def getAsTry[T](key: String)(implicit reader: BSONReader[T]): Try[T]
Gets the BSONValue associated with the given
key
, and converts it with the given implicit BSONReader.Gets the BSONValue associated with the given
key
, and converts it with the given implicit BSONReader.If there is no matching value, or the value could not be deserialized, or converted, returns a
Failure
.The
Failure
may hold a exceptions.BSONValueNotFoundException, if the key could not be found.import reactivemongo.api.bson.{ BSONDocument, BSONNull } val doc = BSONDocument("foo" -> 1, "bar" -> BSONNull) doc.getAsTry[Int]("foo") // Success(1) doc.getAsTry[String]("foo") // Failure(..), as not a string doc.getAsTry[Int]("lorem") // Failure(BSONValueNotFoundException), no 'lorem' key doc.getAsTry[Int]("bar") // Failure(BSONValueNotFoundException), as `BSONNull`
- key
the key to be found in the document
- final def getAsUnflattenedTry[T](key: String)(implicit reader: BSONReader[T]): Try[Option[T]]
Gets the BSONValue at the given
key
, and converts it with the given implicit BSONReader.Gets the BSONValue at the given
key
, and converts it with the given implicit BSONReader.If there is no matching value,
Success(None)
is returned. If there is a value, it must be valid or aFailure
is returned.import reactivemongo.api.bson.{ BSONDocument, BSONNull } val doc = BSONDocument("foo" -> 1, "bar" -> BSONNull) doc.getAsUnflattenedTry[Int]("foo") // Success(Some(1)) doc.getAsUnflattenedTry[String]("foo") // Failure(..), as not a string doc.getAsUnflattenedTry[Int]("lorem") // Success(None), no 'lorem' key doc.getAsUnflattenedTry[Int]("bar") // Success(None), as `BSONNull`
- key
the key to be found in the document
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def getOrElse[T](key: String, default: => T)(implicit reader: BSONReader[T]): T
Returns the BSONValue associated with the given
key
, and converts it with the given implicit BSONReader.Returns the BSONValue associated with the given
key
, and converts it with the given implicit BSONReader.If there is no matching value (or value is a BSONNull), or the value could not be deserialized, or converted, returns the
default
value.import reactivemongo.api.bson.{ BSONDocument, BSONNull } val doc = BSONDocument("foo" -> 1, "bar" -> BSONNull) doc.getOrElse[Int]("foo", -1) // 1 doc.getOrElse[String]("foo", "default") // 'default', as not a string doc.getOrElse[Int]("lorem", -1) // -1, no 'lorem' key doc.getOrElse[Int]("bar", -1) // -1, as `BSONNull`
- key
the key to be found in the document
- Note
When implementing a custom reader, getAsTry must be preferred.
- final def getRawAsTry[T](key: String)(implicit reader: BSONReader[T]): Try[T]
Gets the BSONValue associated with the given
key
, and converts it with the given implicit BSONReader.Gets the BSONValue associated with the given
key
, and converts it with the given implicit BSONReader.If there is no matching value, or the value could not be deserialized, or converted, returns a
Failure
.The
Failure
may hold a exceptions.BSONValueNotFoundException, if the key could not be found.Contrary to getAsTry (which must generally be preferred), if the value is BSONNull it passed to the given
reader
(not skipped).- key
the key to be found in the document
- def hashCode(): Int
- Definition Classes
- BSONDocument → AnyRef → Any
- def int(name: String): Option[Int]
EXPERIMENTAL: Returns the named element from the current document, if the element is a integer field.
EXPERIMENTAL: Returns the named element from the current document, if the element is a integer field.
- Definition Classes
- BSONDocumentExperimental
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def long(name: String): Option[Long]
EXPERIMENTAL: Returns the named element from the current document, if the element is a long field.
EXPERIMENTAL: Returns the named element from the current document, if the element is a long field.
- Definition Classes
- BSONDocumentExperimental
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def size: Int
The number of fields
The number of fields
- Annotations
- @inline()
- def string(name: String): Option[String]
EXPERIMENTAL: Returns the named element from the current document, if the element is a string field.
EXPERIMENTAL: Returns the named element from the current document, if the element is a string field.
- Definition Classes
- BSONDocumentExperimental
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- final def toMap: Map[String, BSONValue]
Returns the
Map
representation for this document.Returns the
Map
representation for this document.import reactivemongo.api.bson.BSONDocument BSONDocument("foo" -> 1).toMap // => Map("foo" -> BSONInteger(1))
- Annotations
- @inline()
- def toString(): String
- Definition Classes
- BSONDocument → AnyRef → Any
- def uuid(name: String): Option[UUID]
EXPERIMENTAL: Returns the named element from the current document, if the element is a binary/uuid field.
EXPERIMENTAL: Returns the named element from the current document, if the element is a binary/uuid field.
- Definition Classes
- BSONDocumentExperimental
- final def values: Iterable[BSONValue]
Returns the values of the document fields.
Returns the values of the document fields.
import reactivemongo.api.bson.BSONDocument BSONDocument("foo" -> 1). values // Seq(BSONInteger(1))
- final def values[T](name: String)(implicit r: BSONReader[T]): Option[Seq[T]]
- Definition Classes
- BSONDocumentExperimental
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
Deprecated Value Members
- def formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from BSONDocument toStringFormat[BSONDocument] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @deprecated @inline()
- Deprecated
(Since version 2.12.16) Use
formatString.format(value)
instead ofvalue.formatted(formatString)
, or use thef""
string interpolator. In Java 15 and later,formatted
resolves to the new method in String which has reversed parameters.
- def →[B](y: B): (BSONDocument, B)
- Implicit
- This member is added by an implicit conversion from BSONDocument toArrowAssoc[BSONDocument] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @deprecated
- Deprecated
(Since version 2.13.0) Use
->
instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.