package bson
BSON main API
import reactivemongo.api.bson._ // { "name": "Johny", "surname": "Doe", "age": 28, "months": [1, 2, 3] } document ++ ("name" -> "Johny") ++ ("surname" -> "Doe") ++ ("age" -> 28) ++ ("months" -> array(1, 2, 3)) // { "_id": generatedId, "name": "Jane", "surname": "Doe", "age": 28, // "months": [1, 2, 3], "details": { "salary": 12345, // "inventory": ["foo", 7.8, 0, false] } } document ++ ("_id" -> generateId, "name" -> "Jane", "surname" -> "Doe", "age" -> 28, "months" -> array(1, 2, 3), "details" -> document( "salary" -> 12345L, "inventory" -> array("foo", 7.8, 0L, false)))
System properties:
The following properties can be set (e.g. using -D
option).
reactivemongo.api.bson.bufferSizeBytes
(integer; default:96
): Number of bytes used as initial size when allocating a new buffer.reactivemongo.api.bson.document.strict
(boolean; default:false
): Flag to enable strict reading of document (filter duplicate fields, see BSONDocument).
- Alphabetic
- By Inheritance
- bson
- Utils
- Aliases
- DefaultBSONHandlers
- BSONIdentityHandlers
- BSONIdentityLowPriorityHandlers
- LowPriority1BSONHandlers
- LowPriority2BSONHandlers
- LowPriority3BSONHandlers
- LowPriority4BSONHandlers
- LowPriorityBSONHandlersCompat
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Package Members
- package exceptions
Type Members
- sealed abstract class BSONArray extends BSONValue
A
BSONArray
(type0x04
) is a indexed sequence of BSONValue.A
BSONArray
(type0x04
) is a indexed sequence of BSONValue.import reactivemongo.api.bson._ BSONArray(BSONString("foo"), BSONDouble(1.2D))
- abstract class BSONArrayCollectionReader[M[_], T] extends BSONReader[M[T]]
- Attributes
- protected
- Definition Classes
- LowPriority1BSONHandlers
- final class BSONBinary extends BSONValue
A BSON binary value.
- final class BSONBoolean extends BSONValue with Value
BSON boolean value
- sealed trait BSONBooleanLike extends AnyRef
A BSON value that can be seen as a boolean.
A BSON value that can be seen as a boolean.
Conversions:
number = 0 ~> false
number != 0 ~> true
boolean
undefined ~> false
null ~> false
- final class BSONDateTime extends BSONValue with Value
BSON date time value
- final class BSONDecimal extends BSONValue with Value with Value
Value wrapper for a BSON 128-bit decimal.
- sealed abstract class BSONDocument extends BSONValue with ElementProducer with BSONDocumentLowPriority with BSONDocumentExperimental
A
BSONDocument
structure (BSON type0x03
).A
BSONDocument
structure (BSON type0x03
).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.
- type BSONDocumentHandler[T] = BSONDocumentReader[T] with BSONDocumentWriter[T] with BSONHandler[T]
Convenient type alias for document handlers
- trait BSONDocumentReader[T] extends BSONReader[T]
- trait BSONDocumentWriter[T] extends BSONWriter[T]
- final class BSONDouble extends BSONValue with Value with Value
A BSON Double.
A BSON Double.
reactivemongo.api.bson.BSONDouble(1.23D)
- sealed abstract class BSONElement extends ElementProducer
BSON element, typically a pair of name and BSONValue.
BSON element, typically a pair of name and BSONValue.
import reactivemongo.api.bson.{ BSONElement, BSONString } BSONElement("name", BSONString("value"))
- trait BSONHandler[T] extends BSONReader[T] with BSONWriter[T]
A BSON handler is able to both read and write
T
values from/to BSON representation.A BSON handler is able to both read and write
T
values from/to BSON representation.import scala.util.Try import reactivemongo.api.bson.{ BSONHandler, BSONValue } def roundtrip[T](value: T)(implicit handler: BSONHandler[T]): Try[Boolean] = for { bson: BSONValue <- handler.writeTry(value) dser <- handler.readTry(bson) } yield (dser == value) // true
- final class BSONInteger extends BSONValue with Value with Value
BSON Integer value
- final class BSONJavaScript extends BSONValue
BSON JavaScript value.
- final class BSONJavaScriptWS extends BSONValue
BSON JavaScript value with scope (WS).
- final class BSONLong extends BSONValue with Value with Value
BSON Long value
- sealed trait BSONMaxKey extends BSONValue
BSON Max key value
- sealed trait BSONMinKey extends BSONValue
BSON Min key value
- sealed trait BSONNull extends BSONValue with Value
BSON null value
- sealed trait BSONNumberLike extends AnyRef
A BSON value that can be seen as a number.
- sealed abstract class BSONObjectID extends BSONValue
BSON ObjectId value.
BSON ObjectId value.
| Timestamp (seconds) | Machine identifier | Thread identifier | Increment
| --- | --- | --- | ---
| 4 bytes | 3 bytes | 2 bytes | 3 bytes
- trait BSONReader[T] extends AnyRef
A reader that produces an instance of
T
from a subtype of BSONValue. - final class BSONRegex extends BSONValue
BSON Regex value.
- sealed trait BSONStrictDocument extends BSONStrictDocumentLowPriority
EXPERIMENTAL: Strict documentation representation with at most one value per field name (no duplicate).
EXPERIMENTAL: Strict documentation representation with at most one value per field name (no duplicate).
import reactivemongo.api.bson.BSONDocument def strict1 = // { 'foo': 1 } BSONDocument.strict("foo" -> 1, "foo" -> 2) def strict2 = BSONDocument("foo" -> 1, "foo" -> 2).asStrict assert(strict1 == strict2)
- final class BSONString extends BSONValue
A BSON string.
A BSON string.
reactivemongo.api.bson.BSONString("foo")
- final class BSONSymbol extends BSONValue
BSON Symbol value.
- sealed abstract class BSONTimestamp extends BSONValue with Value
BSON Timestamp value
- sealed trait BSONUndefined extends BSONValue with Value
BSON undefined value
- sealed trait BSONValue extends AnyRef
A BSON value
- trait BSONWriter[T] extends AnyRef
A writer that produces a subtype of BSONValue from an instance of
T
. - type BaseColl[T] = Iterable[T]
- Definition Classes
- Aliases
- sealed trait ElementProducer extends Producer[BSONElement]
- trait FieldNaming extends (String) => String
Naming strategy, to map each class property to the corresponding field.
- trait KeyReader[T] extends AnyRef
Mapping from a BSON string to
T
- trait KeyWriter[T] extends AnyRef
Mapping from a BSON string to
T
- sealed trait MacroConfiguration extends AnyRef
Macro configuration
- sealed trait MacroOptions extends AnyRef
Macros with 'Opts' suffix will take additional options in the form of type parameters that will customize behaviour of the macros during compilation.
- sealed trait Producer[T] extends AnyRef
- type StringOps = scala.collection.StringOps
- Definition Classes
- Aliases
- sealed trait Subtype extends AnyRef
Binary Subtype
- trait TypeNaming extends (Class[_]) => String
Naming strategy, to map each class to a discriminator value.
- final class ¬[A, B] extends AnyRef
Type level evidence that type
A
is not typeB
.Type level evidence that type
A
is not typeB
.- Annotations
- @SuppressWarnings()
Value Members
- def array(values: Producer[BSONValue]*): BSONArray
Returns an array with given values.
Returns an array with given values.
import reactivemongo.api.bson._ val arr = array("bar", 1L) // [ 'bar', NumberLong(1) ]
- def array: BSONArray
Returns an empty array.
Returns an empty array.
import reactivemongo.api.bson._ val arr1 = BSONString("bar") +: array // [ 'bar' ] val arr2 = BSONInteger(1) +: arr1 // [ 1, 'bar' ]
- def bsonLocalDateHandler(zone: ZoneId): BSONHandler[LocalDate]
Returns a BSON handler for
java.time.LocalDate
, considering the specified timezone
.Returns a BSON handler for
java.time.LocalDate
, considering the specified timezone
.- Definition Classes
- DefaultBSONHandlers
- Annotations
- @inline()
- implicit val bsonLocalDateHandler: BSONHandler[LocalDate]
- Definition Classes
- DefaultBSONHandlers
- def bsonLocalDateTimeHandler(zone: ZoneId): BSONHandler[LocalDateTime]
Returns a BSON handler for
java.time.LocalDateTime
, considering the specified timezone
.Returns a BSON handler for
java.time.LocalDateTime
, considering the specified timezone
.- Definition Classes
- DefaultBSONHandlers
- Annotations
- @inline()
- implicit val bsonLocalDateTimeHandler: BSONHandler[LocalDateTime]
- Definition Classes
- DefaultBSONHandlers
- implicit def bsonMapKeyWriter[K, V <: BSONValue](implicit keyWriter: KeyWriter[K]): BSONDocumentWriter[Map[K, V]]
- Definition Classes
- LowPriority3BSONHandlers
- implicit def bsonMapWriter[V <: BSONValue]: BSONDocumentWriter[Map[String, V]]
- Definition Classes
- LowPriority1BSONHandlers
- def bsonOffsetDateTimeHandler(zone: ZoneId): BSONHandler[OffsetDateTime]
Returns a BSON handler for
java.time.OffsetDateTime
, considering the specified timezone
.Returns a BSON handler for
java.time.OffsetDateTime
, considering the specified timezone
.- Definition Classes
- DefaultBSONHandlers
- Annotations
- @inline()
- implicit val bsonOffsetDateTimeHandler: BSONHandler[OffsetDateTime]
- Definition Classes
- DefaultBSONHandlers
- def bsonZonedDateTimeHandler(zone: ZoneId): BSONHandler[ZonedDateTime]
Returns a BSON handler for
java.time.ZonedDateTime
, considering the specified timezone
.Returns a BSON handler for
java.time.ZonedDateTime
, considering the specified timezone
.- Definition Classes
- DefaultBSONHandlers
- Annotations
- @inline()
- implicit val bsonZonedDateTimeHandler: BSONHandler[ZonedDateTime]
- Definition Classes
- DefaultBSONHandlers
- implicit final def collectionReader[M[_], T](implicit f: Factory[T, M[T]], reader: BSONReader[T]): BSONReader[M[T]]
- Definition Classes
- LowPriorityBSONHandlersCompat
- implicit def collectionWriter[T, Repr](implicit arg0: (Repr) => Iterable[T], writer: BSONWriter[T], notOption: ¬[Repr, Option[T]]): BSONWriter[Repr]
- Definition Classes
- LowPriority1BSONHandlers
- Annotations
- @silent()
- def document(elements: ElementProducer*): BSONDocument
Returns a document with given elements.
Returns a document with given elements.
import reactivemongo.api.bson._ val doc = document("foo" -> 1) // { 'foo': 1 }
- def document: BSONDocument
Returns an empty document.
Returns an empty document.
import reactivemongo.api.bson._ val doc = document ++ ("foo" -> 1) // { 'foo': 1 }
- def element(name: String, value: BSONValue): BSONElement
- def generateId: BSONObjectID
Returns a newly generated object ID.
- implicit def mapKeyReader[K, V](implicit keyReader: KeyReader[K], valueReader: BSONReader[V]): BSONDocumentReader[Map[K, V]]
- Definition Classes
- LowPriority2BSONHandlers
- implicit def mapKeySafeWriter[K, V](implicit keyWriter: KeyWriter[K] with SafeKeyWriter[K], valueWriter: BSONWriter[V] with SafeBSONWriter[V]): BSONDocumentWriter[Map[K, V]]
- Definition Classes
- LowPriority3BSONHandlers
- implicit def mapKeyWriter[K, V](implicit ev: (K) => StringOps, valueWriter: BSONWriter[V]): BSONDocumentWriter[Map[K, V]]
- Definition Classes
- LowPriority4BSONHandlers
- implicit def mapReader[V](implicit valueReader: BSONReader[V]): BSONDocumentReader[Map[String, V]]
- Definition Classes
- LowPriority1BSONHandlers
- implicit def mapSafeWriter[V](implicit valueWriter: BSONWriter[V] with SafeBSONWriter[V]): BSONDocumentWriter[Map[String, V]]
- Definition Classes
- LowPriority1BSONHandlers
- implicit def mapWriter[V](implicit valueWriter: BSONWriter[V]): BSONDocumentWriter[Map[String, V]]
- Definition Classes
- LowPriority2BSONHandlers
- implicit def nameValueOrdering[T <: BSONValue]: Ordering[(String, T)]
Key/value ordering
Key/value ordering
import reactivemongo.api.bson.BSONString Seq("foo" -> BSONString("1"), "bar" -> BSONString("1")). sorted // == [ "bar" -> .., "foo" -> .. ]
- object BSON
Utility functions
- object BSONArray
BSONArray utilities
BSONArray utilities
import reactivemongo.api.bson.{ BSONArray, BSONString } BSONArray("foo", 1) match { case BSONArray(BSONString(s) +: _) => s == "foo" case _ => false }
- implicit object BSONArrayIdentity extends bson.DefaultBSONHandlers.IdentityBSONHandler[BSONArray]
- Definition Classes
- BSONIdentityHandlers
- object BSONBinary
BSONBinary utilities
- implicit object BSONBinaryHandler extends BSONHandler[Array[Byte]] with SafeBSONWriter[Array[Byte]]
- Definition Classes
- DefaultBSONHandlers
- implicit object BSONBinaryIdentity extends bson.DefaultBSONHandlers.IdentityBSONHandler[BSONBinary]
- Definition Classes
- BSONIdentityHandlers
- object BSONBoolean
- implicit object BSONBooleanHandler extends BSONHandler[Boolean] with SafeBSONWriter[Boolean]
- Definition Classes
- DefaultBSONHandlers
- implicit object BSONBooleanIdentity extends bson.DefaultBSONHandlers.IdentityBSONHandler[BSONBoolean]
- Definition Classes
- BSONIdentityHandlers
- object BSONBooleanLike
- object BSONDateTime
- implicit object BSONDateTimeHandler extends BSONHandler[Instant] with SafeBSONWriter[Instant]
- Definition Classes
- DefaultBSONHandlers
- implicit object BSONDateTimeIdentity extends bson.DefaultBSONHandlers.IdentityBSONHandler[BSONDateTime]
- Definition Classes
- BSONIdentityHandlers
- object BSONDecimal
- implicit object BSONDecimalHandler extends BSONHandler[BigDecimal]
- Definition Classes
- DefaultBSONHandlers
- implicit object BSONDecimalIdentity extends bson.DefaultBSONHandlers.IdentityBSONHandler[BSONDecimal]
- Definition Classes
- BSONIdentityHandlers
- object BSONDocument
BSONDocument factories & utilities.
- object BSONDocumentHandler
Handler factory
- implicit object BSONDocumentIdentity extends BSONDocumentReader[BSONDocument] with BSONDocumentWriter[BSONDocument]
- Definition Classes
- BSONIdentityHandlers
- object BSONDocumentReader
- object BSONDocumentWriter
- object BSONDouble
BSONDouble utilities
BSONDouble utilities
import reactivemongo.api.bson.BSONDouble BSONDouble(1.23D) match { case BSONDouble(v) => assert(v == 1.23D) case _ => ??? }
- implicit object BSONDoubleHandler extends BSONHandler[Double] with SafeBSONWriter[Double]
- Definition Classes
- DefaultBSONHandlers
- implicit object BSONDoubleIdentity extends bson.DefaultBSONHandlers.IdentityBSONHandler[BSONDouble]
- Definition Classes
- BSONIdentityHandlers
- object BSONElement extends BSONElementLowPriority
- implicit object BSONFloatHandler extends BSONHandler[Float] with SafeBSONWriter[Float]
- Definition Classes
- DefaultBSONHandlers
- object BSONHandler
- object BSONInteger
- implicit object BSONIntegerHandler extends BSONHandler[Int] with SafeBSONWriter[Int]
- Definition Classes
- DefaultBSONHandlers
- implicit object BSONIntegerIdentity extends bson.DefaultBSONHandlers.IdentityBSONHandler[BSONInteger]
- Definition Classes
- BSONIdentityHandlers
- object BSONJavaScript
- implicit object BSONJavaScriptIdentity extends bson.DefaultBSONHandlers.IdentityBSONHandler[BSONJavaScript]
- Definition Classes
- BSONIdentityHandlers
- object BSONJavaScriptWS
- implicit object BSONJavaScriptWSIdentity extends bson.DefaultBSONHandlers.IdentityBSONHandler[BSONJavaScriptWS]
- Definition Classes
- BSONIdentityHandlers
- object BSONLong
- implicit object BSONLongHandler extends BSONHandler[Long] with SafeBSONWriter[Long]
- Definition Classes
- DefaultBSONHandlers
- implicit object BSONLongIdentity extends bson.DefaultBSONHandlers.IdentityBSONHandler[BSONLong]
- Definition Classes
- BSONIdentityHandlers
- object BSONMaxKey extends BSONMaxKey
- implicit object BSONMaxKeyIdentity extends bson.DefaultBSONHandlers.IdentityBSONHandler[BSONMaxKey]
- Definition Classes
- BSONIdentityHandlers
- object BSONMinKey extends BSONMinKey
- implicit object BSONMinKeyIdentity extends bson.DefaultBSONHandlers.IdentityBSONHandler[BSONMinKey]
- Definition Classes
- BSONIdentityHandlers
- object BSONNull extends BSONNull
- implicit object BSONNullIdentity extends bson.DefaultBSONHandlers.IdentityBSONHandler[BSONNull]
- Definition Classes
- BSONIdentityHandlers
- object BSONNumberLike
- object BSONObjectID
BSONObjectID utilities
- implicit object BSONObjectIDIdentity extends bson.DefaultBSONHandlers.IdentityBSONHandler[BSONObjectID]
- Definition Classes
- BSONIdentityHandlers
- object BSONReader
BSONReader factories
- object BSONRegex
- implicit object BSONRegexIdentity extends bson.DefaultBSONHandlers.IdentityBSONHandler[BSONRegex]
- Definition Classes
- BSONIdentityHandlers
- object BSONString
BSONString utilities
BSONString utilities
import reactivemongo.api.bson.BSONString BSONString("foo") match { case BSONString(v) => v == "foo" case _ => false }
- implicit object BSONStringHandler extends BSONHandler[String] with SafeBSONWriter[String]
- Definition Classes
- DefaultBSONHandlers
- implicit object BSONStringIdentity extends bson.DefaultBSONHandlers.IdentityBSONHandler[BSONString]
- Definition Classes
- BSONIdentityHandlers
- object BSONSymbol
- implicit object BSONSymbolIdentity extends bson.DefaultBSONHandlers.IdentityBSONHandler[BSONSymbol]
- Definition Classes
- BSONIdentityHandlers
- object BSONTimestamp
Timestamp companion
- implicit object BSONTimestampIdentity extends bson.DefaultBSONHandlers.IdentityBSONHandler[BSONTimestamp]
- Definition Classes
- BSONIdentityHandlers
- implicit object BSONURIHandler extends BSONHandler[URI] with SafeBSONWriter[URI]
- Definition Classes
- DefaultBSONHandlers
- implicit object BSONURLHandler extends BSONHandler[URL] with SafeBSONWriter[URL]
- Definition Classes
- DefaultBSONHandlers
- object BSONUndefined extends BSONUndefined
- implicit object BSONUndefinedIdentity extends bson.DefaultBSONHandlers.IdentityBSONHandler[BSONUndefined]
- Definition Classes
- BSONIdentityHandlers
- object BSONValue extends BSONValueLowPriority1
BSONValue factories and utilities
- implicit object BSONValueIdentity extends BSONReader[BSONValue] with BSONWriter[BSONValue]
- Definition Classes
- BSONIdentityLowPriorityHandlers
- object BSONWriter
- object ElementProducer extends ElementProducerLowPriority
- object FieldNaming
Naming companion
- object KeyReader
- object KeyWriter extends LowPriorityKeyWriter
- object MacroConfiguration
- object MacroOptions
- object Macros
Macros for generating
BSONReader
andBSONWriter
at compile time.Macros for generating
BSONReader
andBSONWriter
at compile time.import reactivemongo.api.bson.Macros case class Person(name: String, surname: String) implicit val personHandler = Macros.handler[Person]
- See also
MacroOptions for specific options
MacroConfiguration for extended configuration
- object Subtype
- object TypeNaming
- object ¬
- Annotations
- @SuppressWarnings()