class MongoConnection extends AnyRef
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: AsyncDriver)(implicit ec: ExecutionContext) = { val con = driver.connect(List("localhost")) val db = con.flatMap(_.database("plugin")) val collection = db.map(_("acoll")) }
- Alphabetic
- By Inheritance
- MongoConnection
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new MongoConnection(supervisor: String, name: String, actorSystem: ActorSystem, mongosystem: ActorRef, options: MongoConnectionOptions)
- supervisor
the name of the supervisor
- name
the unique name for the connection pool
- mongosystem
the reference to the internal reactivemongo.core.actors.MongoDBSystem Actor.
Value Members
- def active: Boolean
Returns true if the connection has not been killed.
Returns true if the connection has not been killed.
- Annotations
- @inline()
- def authenticate(db: String, user: String, password: String, failoverStrategy: FailoverStrategy = options.failoverStrategy)(implicit ec: ExecutionContext): Future[SuccessfulAuthentication]
Authenticates the connection on the given database.
Authenticates the connection on the given database.
- db
the database name
- user
the user name
- password
the user password
- failoverStrategy
the failover strategy for sending requests
import scala.concurrent.{ ExecutionContext, Future } import reactivemongo.api.MongoConnection def authDB(con: MongoConnection, user: String, pass: String)( implicit ec: ExecutionContext): Future[Unit] = con.authenticate("myDB", user, pass).map(_ => {}) // with configured failover
- def close()(implicit timeout: FiniteDuration): Future[_]
Closes this connection (closes all the channels and ends the actors).
Closes this connection (closes all the channels and ends the actors).
import scala.concurrent.{ ExecutionContext, Future } import scala.concurrent.duration._ import reactivemongo.api.MongoConnection def afterClose(con: MongoConnection)( implicit ec: ExecutionContext): Future[Unit] = con.close()(5.seconds).map { res => println("Close result: " + res) }
- def database(name: String, failoverStrategy: FailoverStrategy = options.failoverStrategy)(implicit ec: ExecutionContext): Future[DefaultDB]
Returns a DefaultDB reference using this connection.
Returns a DefaultDB reference using this connection. The failover strategy is also used to wait for the node set to be ready, before returning an valid database reference.
- name
the database name
- failoverStrategy
the failover strategy for sending requests
import scala.concurrent.{ ExecutionContext, Future } import reactivemongo.api.{ DefaultDB, MongoConnection } def resolveDB(con: MongoConnection, name: String)( implicit ec: ExecutionContext): Future[DefaultDB] = con.database(name) // with configured failover
- val options: MongoConnectionOptions
- def toString(): String
- Definition Classes
- MongoConnection → AnyRef → Any
Deprecated Value Members
- val actorSystem: ActorSystem
- Annotations
- @deprecated
- Deprecated
(Since version 0.14.0) Internal: will be made private
- def askClose()(implicit timeout: FiniteDuration): Future[_]
- Annotations
- @deprecated
- Deprecated
(Since version 0.19.4) Use
close
- def authenticate(db: String, user: String, password: String): Future[SuccessfulAuthentication]
- Annotations
- @deprecated
- Deprecated
(Since version 0.14.0) Use
authenticate
withfailoverStrategy
- val mongosystem: ActorRef
- Annotations
- @deprecated
- Deprecated
(Since version 0.17.0) Internal: will be made private
- val name: String
- Annotations
- @deprecated
- Deprecated
(Since version 0.17.0) Internal: will be made private
- val supervisor: String
- Annotations
- @deprecated
- Deprecated
(Since version 0.17.0) Internal: will be made private