BSONReader

object BSONReader

BSONReader factories

Companion:
class
class Object
trait Matchable
class Any

Value members

Concrete methods

def apply[T](read: BSONValue => T): BSONReader[T]

Creates a BSONReader based on the given read function.

Creates a BSONReader based on the given read function.

import reactivemongo.api.bson.{ BSONReader, BSONInteger }

val intToStrCodeReader = BSONReader[String] {
 case BSONInteger(0) => "zero"
 case BSONInteger(1) => "one"
 case _ => "unknown"
}

intToStrCodeReader.readTry(BSONInteger(0)) // Success("zero")
intToStrCodeReader.readTry(BSONInteger(1)) // Success("one")
intToStrCodeReader.readTry(BSONInteger(2)) // Success("unknown")

Any Exception thrown by the read function will be caught.

Creates a BSONReader based on the given partial function.

Creates a BSONReader based on the given partial function.

A exceptions.ValueDoesNotMatchException is returned as Failure for any BSON value that is not matched by the read function.

import reactivemongo.api.bson.{ BSONReader, BSONInteger }

val intToStrCodeReader = BSONReader.collect[String] {
 case BSONInteger(0) => "zero"
 case BSONInteger(1) => "one"
}

intToStrCodeReader.readTry(BSONInteger(0)) // Success("zero")
intToStrCodeReader.readTry(BSONInteger(1)) // Success("one")

intToStrCodeReader.readTry(BSONInteger(2))
// => Failure(ValueDoesNotMatchException(..))

intToStrCodeReader.readOpt(BSONInteger(3)) // None (as failed)
def from[T](read: BSONValue => Try[T]): BSONReader[T]

Creates a BSONReader based on the given read function.

Creates a BSONReader based on the given read function.

import scala.util.{ Failure, Success }
import reactivemongo.api.bson.{ BSONReader, BSONInteger }

val intToStrCodeReader = BSONReader.from[String] {
 case BSONInteger(0) => Success("zero")
 case BSONInteger(1) => Success("one")
 case _ => Failure(new IllegalArgumentException())
}

intToStrCodeReader.readTry(BSONInteger(0)) // Success("zero")
intToStrCodeReader.readTry(BSONInteger(1)) // Success("one")

intToStrCodeReader.readTry(BSONInteger(2))
// => Failure(IllegalArgumentException(..))

intToStrCodeReader.readOpt(BSONInteger(3)) // None (as failed)
Value parameters:
read

the safe function to read BSON values as T

def option[T](read: BSONValue => Option[T]): BSONReader[T]

Creates a BSONReader based on the given read function.

Creates a BSONReader based on the given read function.

import reactivemongo.api.bson.{ BSONReader, BSONInteger }

val intToStrCodeReader = BSONReader.option[String] {
 case BSONInteger(0) => Some("zero")
 case BSONInteger(1) => Some("one")
 case _ => None
}

intToStrCodeReader.readTry(BSONInteger(0)) // Success("zero")
intToStrCodeReader.readTry(BSONInteger(1)) // Success("one")

intToStrCodeReader.readTry(BSONInteger(2))
// => Failure(ValueDoesNotMatchException(..))

intToStrCodeReader.readOpt(BSONInteger(3)) // None (as failed)
def sequence[T](read: BSONValue => Try[T]): BSONReader[Seq[T]]

'''EXPERIMENTAL:''' (API may change without notice)

'''EXPERIMENTAL:''' (API may change without notice)

Creates a BSONReader accepting only BSONArray, and applying the given safe read function to each element value.

import reactivemongo.api.bson.BSONReader

def foo(elmReader: BSONReader[(String, Int)]): BSONReader[Seq[(String, Int)]] = BSONReader.sequence(elmReader.readTry _)
def tuple2[A : BSONReader, B : BSONReader]: BSONReader[(A, B)]

'''EXPERIMENTAL:''' Creates a BSONDocumentReader that reads the BSONArray elements.

'''EXPERIMENTAL:''' Creates a BSONDocumentReader that reads the BSONArray elements.

import reactivemongo.api.bson.{ BSONArray, BSONReader }

val reader = BSONReader.tuple2[String, Int]

val arr = BSONArray("Foo", 20)

reader.readTry(arr) // => Success(("Foo", 20))
def tuple3[A : BSONReader, B : BSONReader, C : BSONReader]: BSONReader[(A, B, C)]

'''EXPERIMENTAL:''' Creates a BSONDocumentReader that reads the BSONArray elements.

'''EXPERIMENTAL:''' Creates a BSONDocumentReader that reads the BSONArray elements.

See also:
def tuple4[A : BSONReader, B : BSONReader, C : BSONReader, D : BSONReader]: BSONReader[(A, B, C, D)]

'''EXPERIMENTAL:''' Creates a BSONDocumentReader that reads the BSONArray elements.

'''EXPERIMENTAL:''' Creates a BSONDocumentReader that reads the BSONArray elements.

See also:
def tuple5[A : BSONReader, B : BSONReader, C : BSONReader, D : BSONReader, E : BSONReader]: BSONReader[(A, B, C, D, E)]

'''EXPERIMENTAL:''' Creates a BSONDocumentReader that reads the BSONArray elements.

'''EXPERIMENTAL:''' Creates a BSONDocumentReader that reads the BSONArray elements.

See also:

Inherited methods

def iterable[T, M[_]](read: BSONValue => Try[T])(implicit cbf: Factory[T, M[T]]): BSONReader[M[T]]

'''EXPERIMENTAL:''' (API may change without notice)

'''EXPERIMENTAL:''' (API may change without notice)

Creates a BSONReader accepting only BSONArray, and applying the given safe read function to each element value.

import reactivemongo.api.bson.BSONReader

case class Element(str: String, v: Int)

def elementReader: BSONReader[Element] = ???

val setReader: BSONReader[Set[Element]] =
 BSONReader.iterable[Element, Set](elementReader readTry _)
Inherited from:
BSONReaderCompat

Givens

Inherited givens

Inherited from:
BSONReaderInstances
Inherited from:
BSONReaderInstances
Inherited from:
BSONReaderInstances
given dateTimeReader: BSONReader[Instant]
Inherited from:
BSONReaderInstances
Inherited from:
BSONReaderInstances
Inherited from:
BSONReaderInstances
Inherited from:
BSONReaderInstances
Inherited from:
BSONReaderInstances
given localDateReader: BSONReader[LocalDate]
Inherited from:
BSONReaderInstances
given localDateTimeReader: BSONReader[LocalDateTime]
Inherited from:
BSONReaderInstances
given localTimeReader: BSONReader[LocalTime]
Inherited from:
BSONReaderInstances
given localeReader: BSONReader[Locale]
Inherited from:
BSONReaderInstances
Inherited from:
BSONReaderInstances
given mapKeyReader[K, V](using KeyReader[K], BSONReader[V]): BSONDocumentReader[Map[K, V]]
Inherited from:
BSONReaderInstances
Inherited from:
BSONReaderInstances
given offsetDateTimeReader: BSONReader[OffsetDateTime]
Inherited from:
BSONReaderInstances
Inherited from:
BSONReaderInstances
given tuple2Reader[A : BSONReader, B : BSONReader]: BSONReader[(A, B)]
Inherited from:
BSONReaderInstances
given tuple3Reader[A : BSONReader, B : BSONReader, C : BSONReader]: BSONReader[(A, B, C)]
Inherited from:
BSONReaderInstances
given tuple4Reader[A : BSONReader, B : BSONReader, C : BSONReader, D : BSONReader]: BSONReader[(A, B, C, D)]
Inherited from:
BSONReaderInstances
given tuple5Reader[A : BSONReader, B : BSONReader, C : BSONReader, D : BSONReader, E : BSONReader]: BSONReader[(A, B, C, D, E)]
Inherited from:
BSONReaderInstances
given uriReader: BSONReader[URI]
Inherited from:
BSONReaderInstances
given urlReader: BSONReader[URL]
Inherited from:
BSONReaderInstances
given uuidReader: BSONReader[UUID]
Inherited from:
BSONReaderInstances
given zonedDateTimeReader: BSONReader[ZonedDateTime]
Inherited from:
BSONReaderInstances

Implicits

Inherited implicits

final implicit def bsonArrayReader: BSONReader[BSONArray]
Exported from package.bsonArrayReader
Inherited from:
BSONReaderInstances
Exported from package.bsonBinaryReader
Inherited from:
BSONReaderInstances
Exported from package.bsonBooleanReader
Inherited from:
BSONReaderInstances
Exported from package.bsonDateTimeReader
Inherited from:
BSONReaderInstances
Exported from package.bsonDecimalReader
Inherited from:
BSONReaderInstances
Exported from package.bsonDocumentReader
Inherited from:
BSONReaderInstances
Exported from package.bsonDoubleReader
Inherited from:
BSONReaderInstances
Exported from package.bsonIntegerReader
Inherited from:
BSONReaderInstances
Exported from package.bsonJavaScriptReader
Inherited from:
BSONReaderInstances
Exported from package.bsonJavaScriptWSReader
Inherited from:
BSONReaderInstances
final implicit def bsonLongReader: BSONReader[BSONLong]
Exported from package.bsonLongReader
Inherited from:
BSONReaderInstances
Exported from package.bsonMaxKeyReader
Inherited from:
BSONReaderInstances
Exported from package.bsonMinKeyReader
Inherited from:
BSONReaderInstances
final implicit def bsonNullReader: BSONReader[BSONNull]
Exported from package.bsonNullReader
Inherited from:
BSONReaderInstances
Exported from package.bsonObjectIDReader
Inherited from:
BSONReaderInstances
final implicit def bsonRegexReader: BSONReader[BSONRegex]
Exported from package.bsonRegexReader
Inherited from:
BSONReaderInstances
Exported from package.bsonStringReader
Inherited from:
BSONReaderInstances
Exported from package.bsonSymbolReader
Inherited from:
BSONReaderInstances
Exported from package.bsonTimestampReader
Inherited from:
BSONReaderInstances
Exported from package.bsonUndefinedReader
Inherited from:
BSONReaderInstances