The asynchronous driver (see MongoConnection).
The asynchronous driver (see MongoConnection).
import scala.concurrent.Future import reactivemongo.api.{ AsyncDriver, MongoConnection } val driver = AsyncDriver() val connection: Future[MongoConnection] = driver.connect("mongodb://node:27017")
The mode/mechanism of authentication
A MongoDB Collection, resolved from a reactivemongo.api.DefaultDB.
A MongoDB Collection, resolved from a reactivemongo.api.DefaultDB.
You should consider the generic API (reactivemongo.api.collections.GenericCollection).
A mixin that provides commands about this Collection itself.
A Producer of Collection implementation.
A Producer of Collection implementation.
This is used to get an implementation implicitly when getting a reference of a Collection.
Cursor over results from MongoDB.
Cursor over results from MongoDB.
import scala.concurrent.{ ExecutionContext, Future } import reactivemongo.api.Cursor import reactivemongo.api.bson.{ BSONDocument, Macros } import reactivemongo.api.bson.collection.BSONCollection case class User(name: String, pass: String) implicit val handler = Macros.reader[User] def findUsers(coll: BSONCollection)( implicit ec: ExecutionContext): Future[List[User]] = coll.find(BSONDocument("enabled" -> true)). cursor[User](). // obtain cursor for User results collect[List]( maxDocs = 10, err = Cursor.FailOnError[List[User]]())
the type parsed from each result document
Cursor over results from MongoDB.
Cursor over results from MongoDB.
the type parsed from each result document
Flattening strategy for cursor.
Flattening strategy for cursor.
import scala.concurrent.Future import reactivemongo.api.{ Cursor, CursorFlattener, FlattenedCursor } trait FooCursor[T] extends Cursor[T] { def foo: String } implicit def fooFlattener = new CursorFlattener[FooCursor] { def flatten[T](future: Future[FooCursor[T]]): FooCursor[T] = new FlattenedCursor[T](future) with FooCursor[T] { def foo = "Flattened" } }
Internal cursor operations.
Allows to enrich a base cursor.
The reference to a MongoDB database, obtained from a reactivemongo.api.MongoConnection.
The reference to a MongoDB database, obtained from a reactivemongo.api.MongoConnection.
You should consider the provided reactivemongo.api.DefaultDB implementation.
import scala.concurrent.ExecutionContext import reactivemongo.api.MongoConnection def foo(connection: MongoConnection)(implicit ec: ExecutionContext) = { val db = connection.database("plugin") val collection = db.map(_("acoll")) }
A mixin that provides commands about this database itself.
The default DB implementation, that mixes in the database traits.
The default DB implementation, that mixes in the database traits.
A failover strategy for sending requests.
A failover strategy for sending requests. The default uses 10 retries: 125ms, 250ms, 375ms, 500ms, 625ms, 750ms, 875ms, 1s, 1125ms, 1250ms
import scala.concurrent.duration._ reactivemongo.api.FailoverStrategy( initialDelay = 150.milliseconds, retries = 20, delayFactor = { `try` => `try` * 1.5D })
the initial delay between the first failed attempt and the next one.
the number of retries to do before giving up.
a function that takes the current iteration and returns a factor to be applied to the initialDelay (default: FailoverStrategy.defaultFactor; see FailoverStrategy.FactorFun)
A pool of MongoDB connections, obtained from a reactivemongo.api.MongoDriver.
A pool of MongoDB connections, obtained from a reactivemongo.api.MongoDriver.
Connection here does not mean that there is one open channel to the server: behind the scene, many connections (channels) are open on all the available servers in the replica set.
Example:
import scala.concurrent.ExecutionContext import reactivemongo.api._ def foo(driver: MongoDriver)(implicit ec: ExecutionContext) = { val con = driver.connection(List("localhost")) val db = con.database("plugin") val collection = db.map(_("acoll")) }
Options for MongoConnection (see more documentation).
Operations about query.
A helper to make the query options.
A helper to make the query options. You may use the methods to set the fields of this class, or set them directly.
the number of documents to skip.
the upper limit on the number of documents to retrieve per batch (0 for unspecified)
the query flags
The Read Concern allows to control the consistency and isolation used to read data from replica sets.
MongoDB read preference enables to read from primary or secondaries with a predefined strategy.
Cursor wrapper, to help to define custom cursor classes.
Cursor wrapper, to help to define custom cursor classes.
CursorProducer
Internal cursor operations.
The write concern
A helper that sends the given message to the given actor, following a failover strategy.
A helper that sends the given message to the given actor, following a failover strategy. This helper holds a future reference that is completed with a response, after 1 or more attempts (specified in the given strategy). If the all the tryouts configured by the given strategy were unsuccessful, the future reference is completed with a Throwable.
Should not be used directly for most use cases.
Type of the message to send.
(Since version 0.17.0) Unused, will be removed
(Since version 0.19.4) Use reactivemongo.api.AsyncDriver
(Since version 0.17.0) Unused, will be removed
The driver factory
Cursor companion object
Flatteners helper
FailoverStrategy utilities
SCRAM-SHA-1 authentication (since MongoDB 3.6)
SCRAM-SHA-256 authentication (see MongoDB 4.0)
Write concern utilities.
Write concern utilities.
import scala.concurrent.ExecutionContext import reactivemongo.api.{ DefaultDB, WriteConcern } import reactivemongo.api.bson.BSONDocument def foo(db: DefaultDB)(implicit ec: ExecutionContext) = db.collection("myColl"). insert(ordered = false, WriteConcern.Acknowledged). one(BSONDocument("foo" -> "bar"))
X509 authentication
MongoDB-CR authentication
MongoDB-CR authentication
(Since version 0.19.4) Use SCRAM or X509
(Since version 0.16.0) Will be removed
(Since version 0.16.0) Internal: will be made private
(Since version 0.16.0) Use DefaultDB class
The driver factory
The driver factory
(Since version 0.19.4) Internal: will be made private
(Since version 0.17.0) Internal: will be made private
The driver factory
The driver factory
(Since version 0.19.4) Use reactivemongo.api.AsyncDriver
(Since version 0.19.0) Use reactivemongo-bson-api
(Since version 0.19.0) Use reactivemongo-bson-api or use reactivemongo-bson-compat: import reactivemongo.api.bson.compat._
(Since version 0.19.0) Use reactivemongo-bson-api
(Since version 0.19.0) Use reactivemongo-bson-api
(Since version 0.19.0) Use reactivemongo-bson-api or use reactivemongo-bson-compat: import reactivemongo.api.bson.compat._
(Since version 0.19.0) Use reactivemongo-bson-api or use reactivemongo-bson-compat: import reactivemongo.api.bson.compat._