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 valueProducer
- by identityValueProducer
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
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 to any2stringadd[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 to ArrowAssoc[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
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( ... ) @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 to Ensuring[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 to Ensuring[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 to Ensuring[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 to Ensuring[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[_]
- 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( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
def
→[B](y: B): (BSONDocument, B)
- Implicit
- This member is added by an implicit conversion from BSONDocument to ArrowAssoc[BSONDocument] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
Deprecated Value Members
-
def
formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from BSONDocument to StringFormat[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.