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
- All
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] = Traversable[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.immutable.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 cbf: CanBuildFrom[M[_], 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()