Class

reactivemongo.api

DB

Related Doc: package api

Permalink

final class DB extends DBMetaCommands with PackSupport[Pack]

The reference to a MongoDB database, obtained from a reactivemongo.api.MongoConnection.

import scala.concurrent.ExecutionContext
import reactivemongo.api.MongoConnection

def foo(connection: MongoConnection)(implicit ec: ExecutionContext) = {
  val db = connection.database("plugin")
  val _ = db.map(_("acoll")) // Collection reference
}
Linear Supertypes
PackSupport[Pack], DBMetaCommands, CreateUserCommand[Pack], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. DB
  2. PackSupport
  3. DBMetaCommands
  4. CreateUserCommand
  5. AnyRef
  6. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. final class CreateUser extends Command with CommandWithPack[P] with CommandWithResult[Unit]

    Permalink

    The createUser command.

    The createUser command.

    Attributes
    protected
    Definition Classes
    CreateUserCommand

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. def +(other: String): String

    Permalink
    Implicit information
    This member is added by an implicit conversion from DB to any2stringadd[DB] performed by method any2stringadd in scala.Predef.
    Definition Classes
    any2stringadd
  4. def ->[B](y: B): (DB, B)

    Permalink
    Implicit information
    This member is added by an implicit conversion from DB to ArrowAssoc[DB] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @inline()
  5. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  6. def abortTransaction(failIfNotStarted: Boolean)(implicit ec: ExecutionContext): Future[DB]

    Permalink

    Aborts the transaction associated with the current client session (since MongoDB 4.0), if any otherwise does nothing .

    Aborts the transaction associated with the current client session (since MongoDB 4.0), if any otherwise does nothing .

    returns

    The database reference with transaction aborted (but not session)

  7. def abortTransaction()(implicit ec: ExecutionContext): Future[DB]

    Permalink

    Aborts the transaction associated with the current client session (since MongoDB 4.0), if any otherwise does nothing .

    Aborts the transaction associated with the current client session (since MongoDB 4.0), if any otherwise does nothing .

    import scala.concurrent.ExecutionContext
    import reactivemongo.api.DB
    
    def equivalentTo(db: DB)(implicit ec: ExecutionContext) =
      db.abortTransaction(failIfNotStarted = false)
    returns

    The database reference with transaction aborted (but not session)

    Annotations
    @inline()
  8. def apply[C <: Collection](name: String, failoverStrategy: FailoverStrategy = failoverStrategy)(implicit producer: CollectionProducer[C] = ...): C

    Permalink

    Returns a reactivemongo.api.Collection reference from this database (alias for the collection method).

    Returns a reactivemongo.api.Collection reference from this database (alias for the collection method).

    C

    the Collection type

    name

    the name of the collection to resolve

    failoverStrategy

    the failover strategy to override the default one

    Annotations
    @SuppressWarnings()
  9. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  10. def authenticate(user: String, password: String)(implicit ec: ExecutionContext): Future[SuccessfulAuthentication]

    Permalink

    Authenticates the connection on this database.

    Authenticates the connection on this database.

    user

    the name of the user

    password

    the user password

    See also

    MongoConnection.authenticate

  11. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  12. def collection[C <: Collection](name: String, failoverStrategy: FailoverStrategy = failoverStrategy)(implicit producer: CollectionProducer[C] = ...): C

    Permalink

    Returns a reactivemongo.api.Collection reference from this database.

    Returns a reactivemongo.api.Collection reference from this database.

    C

    the Collection type

    name

    the name of the collection to resolve

    failoverStrategy

    the failover strategy to override the default one

    import reactivemongo.api.DB
    def resolveColl(db: DB) = db.collection("acoll")
    Annotations
    @SuppressWarnings()
  13. final def collectionNames(implicit ec: ExecutionContext): Future[List[String]]

    Permalink

    Returns the names of the collections in this database.

    Returns the names of the collections in this database.

    import scala.concurrent.{ ExecutionContext, Future }
    import reactivemongo.api.DB
    
    def listCollections(db: DB)(
      implicit ec: ExecutionContext): Future[List[String]] =
      db.collectionNames
    Definition Classes
    DBMetaCommands
  14. def commitTransaction(failIfNotStarted: Boolean)(implicit ec: ExecutionContext): Future[DB]

    Permalink

    Commits the transaction associated with the current client session (since MongoDB 4.0), if any otherwise does nothing .

    Commits the transaction associated with the current client session (since MongoDB 4.0), if any otherwise does nothing .

    import scala.concurrent.ExecutionContext
    import reactivemongo.api.DB
    
    def commitIt(db: DB)(implicit ec: ExecutionContext) =
      db.commitTransaction(failIfNotStarted = true)
    returns

    The database reference with transaction commited (but not session)

  15. def commitTransaction()(implicit ec: ExecutionContext): Future[DB]

    Permalink

    Commits the transaction associated with the current client session (since MongoDB 4.0), if any otherwise does nothing .

    Commits the transaction associated with the current client session (since MongoDB 4.0), if any otherwise does nothing .

    import scala.concurrent.ExecutionContext
    import reactivemongo.api.DB
    
    def equivalentTo(db: DB)(implicit ec: ExecutionContext) =
      db.commitTransaction(failIfNotStarted = false)
    returns

    The database reference with transaction commited (but not session)

    Annotations
    @inline()
  16. val connection: MongoConnection

    Permalink

    the reactivemongo.api.MongoConnection that will be used to query this database

  17. final def createUser[T](user: String, pwd: Option[String], customData: Option[T] = Option.empty[Pack#Document], roles: List[UserRole] = List.empty, digestPassword: Boolean = true, writeConcern: WriteConcern = connection.options.writeConcern, restrictions: List[AuthenticationRestriction] = List.empty, mechanisms: List[AuthenticationMode] = List.empty)(implicit ec: ExecutionContext, w: Writer[T]): Future[Unit]

    Permalink

    Create the user with given properties.

    Create the user with given properties.

    import scala.concurrent.{ ExecutionContext, Future }
    
    import reactivemongo.api.{
      DB,
      ScramSha256Authentication,
      ScramSha1Authentication,
      WriteConcern
    }
    import reactivemongo.api.commands.UserRole
    
    def createReadWriteUser(db: DB, name: String)(
      implicit ec: ExecutionContext): Future[Unit] =
      db.createUser(
        user = name,
        pwd = None, // no initial password
        roles = List(UserRole("readWrite")),
        digestPassword = true,
        writeConcern = WriteConcern.Default,
        restrictions = List.empty,
        mechanisms = List(
          ScramSha1Authentication, ScramSha256Authentication))
    T

    the type of custom data associated with the created user

    user

    the name of the user to be created

    pwd

    the user password (not required if the database uses external credentials)

    customData

    the custom data to associate with the user account

    roles

    the roles granted to the user, possibly an empty to create users without roles

    digestPassword

    when true, the mongod instance will create the hash of the user password (default: true)

    writeConcern

    the optional level of write concern

    restrictions

    the authentication restriction

    mechanisms

    the authentication mechanisms (e.g. ScramSha1Authentication)

    Definition Classes
    DBMetaCommands
  18. final def createUserWriter(version: MongoWireVersion): Writer[CreateUser]

    Permalink
    Attributes
    protected
    Definition Classes
    CreateUserCommand
  19. final def drop()(implicit ec: ExecutionContext): Future[Unit]

    Permalink

    Drops this database.

    Drops this database.

    import scala.concurrent.{ ExecutionContext, Future }
    import reactivemongo.api.DB
    
    def dropDB(db: DB)(
      implicit ec: ExecutionContext): Future[Unit] = db.drop()
    Definition Classes
    DBMetaCommands
  20. def endSession(failIfNotStarted: Boolean)(implicit ec: ExecutionContext): Future[DB]

    Permalink

    Ends (closes) the session associated with this database reference (since MongoDB 3.6), if any otherwise does nothing .

    Ends (closes) the session associated with this database reference (since MongoDB 3.6), if any otherwise does nothing .

    returns

    The database reference with session ended

  21. def endSession()(implicit ec: ExecutionContext): Future[DB]

    Permalink

    Ends (closes) the session associated with this database reference (since MongoDB 3.6), if any otherwise does nothing .

    Ends (closes) the session associated with this database reference (since MongoDB 3.6), if any otherwise does nothing .

    import scala.concurrent.ExecutionContext
    import reactivemongo.api.DB
    
    def equivalentTo(db: DB)(implicit ec: ExecutionContext) =
      db.endSession(failIfNotStarted = false)
    returns

    The database reference with session ended

    Annotations
    @inline()
  22. def ensuring(cond: (DB) ⇒ Boolean, msg: ⇒ Any): DB

    Permalink
    Implicit information
    This member is added by an implicit conversion from DB to Ensuring[DB] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  23. def ensuring(cond: (DB) ⇒ Boolean): DB

    Permalink
    Implicit information
    This member is added by an implicit conversion from DB to Ensuring[DB] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  24. def ensuring(cond: Boolean, msg: ⇒ Any): DB

    Permalink
    Implicit information
    This member is added by an implicit conversion from DB to Ensuring[DB] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  25. def ensuring(cond: Boolean): DB

    Permalink
    Implicit information
    This member is added by an implicit conversion from DB to Ensuring[DB] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  26. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  27. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  28. val failoverStrategy: FailoverStrategy

    Permalink

    the default failover strategy for sending requests

  29. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  30. def formatted(fmtstr: String): String

    Permalink
    Implicit information
    This member is added by an implicit conversion from DB to StringFormat[DB] performed by method StringFormat in scala.Predef.
    Definition Classes
    StringFormat
    Annotations
    @inline()
  31. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  32. def getMore[P <: SerializationPack, T](pack: P, reference: Reference, readPreference: ReadPreference = defaultReadPreference, failoverStrategy: FailoverStrategy = this.failoverStrategy, maxTimeMS: Option[Long] = None)(implicit reader: getMore.P.Reader[T], cp: CursorProducer[T]): ProducedCursor

    Permalink

    EXPERIMENTAL: API may change without notice.

    EXPERIMENTAL: API may change without notice.

    Annotations
    @SuppressWarnings()
  33. final def gridfs[P <: SerializationPack](pack: P, prefix: String): GridFS[P]

    Permalink

    The GridFS with the default serialization.

    The GridFS with the default serialization.

    P

    the type of serialization

    pack

    the serialization pack

    prefix

    the collection prefix

    Definition Classes
    DBMetaCommands
  34. final def gridfs(prefix: String): GridFS[Pack]

    Permalink

    The GridFS with the default serialization.

    The GridFS with the default serialization.

    prefix

    the collection prefix

    Definition Classes
    DBMetaCommands
    Annotations
    @inline()
  35. final def gridfs: GridFS[Pack]

    Permalink

    The GridFS with the default serialization and collection prefix.

    The GridFS with the default serialization and collection prefix.

    import reactivemongo.api.DB
    import reactivemongo.api.bson.BSONDocument
    
    def findFile(db: DB, query: BSONDocument) = db.gridfs.find(query)
    Definition Classes
    DBMetaCommands
    Annotations
    @inline()
  36. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  37. final def indexesManager(implicit ec: ExecutionContext): Aux[Pack]

    Permalink

    Returns an index manager for this database.

    Returns an index manager for this database.

    import scala.concurrent.{ ExecutionContext, Future }
    
    import reactivemongo.api.DB
    import reactivemongo.api.indexes.NSIndex
    
    def listIndexes(db: DB)(
      implicit ec: ExecutionContext): Future[List[String]] =
      db.indexesManager.list().map(_.flatMap { ni: NSIndex =>
        ni.index.name.toList
      })
    Definition Classes
    DBMetaCommands
  38. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  39. def killSession(failIfNotStarted: Boolean)(implicit ec: ExecutionContext): Future[DB]

    Permalink

    Kills (aborts) the session associated with this database reference (since MongoDB 3.6), if any otherwise does nothing .

    Kills (aborts) the session associated with this database reference (since MongoDB 3.6), if any otherwise does nothing .

    returns

    The database reference with session aborted

  40. def killSession()(implicit ec: ExecutionContext): Future[DB]

    Permalink

    Kills (aborts) the session associated with this database reference (since MongoDB 3.6), if any otherwise does nothing .

    Kills (aborts) the session associated with this database reference (since MongoDB 3.6), if any otherwise does nothing .

    import scala.concurrent.ExecutionContext
    import reactivemongo.api.DB
    
    def equivalentTo(db: DB)(implicit ec: ExecutionContext) =
      db.killSession(failIfNotStarted = false)
    returns

    The database reference with session aborted

    Annotations
    @inline()
  41. val name: String

    Permalink

    this database name

  42. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  43. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  44. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  45. val pack: Pack

    Permalink

    The serialization pack (BSON by default).

    The serialization pack (BSON by default).

    Used to resolve the types of values (by default BSONValue, BSONDocument, ...), and the related typeclasses (e.g. BSONDocumentReader ...).

    Definition Classes
    DB → PackSupport
  46. final def ping(readPreference: ReadPreference = ReadPreference.nearest)(implicit ec: ExecutionContext): Future[Boolean]

    Permalink

    Tests if the server, resolved according to the given read preference, responds to commands.

    Tests if the server, resolved according to the given read preference, responds to commands.

    returns

    true if successful (even if the server is write locked)

    Definition Classes
    DBMetaCommands
    Since

    MongoDB 3.0

    import scala.concurrent.{ ExecutionContext, Future }
    import reactivemongo.api.DB
    def pingDB(db: DB)(
      implicit ec: ExecutionContext): Future[Boolean] =
      db.ping() // with default ReadPreference
  47. final def renameCollection[C <: Collection](db: String, from: String, to: String, dropExisting: Boolean = false, failoverStrategy: FailoverStrategy = failoverStrategy)(implicit ec: ExecutionContext, producer: CollectionProducer[C] = ...): Future[C]

    Permalink

    Renames a collection.

    Renames a collection. Can only be executed if the this database reference is the admin one.

    import scala.concurrent.{ ExecutionContext, Future }
    import reactivemongo.api.DB
    
    def addCollSuffix(
      admin: DB,
      coll: String,
      suffix: String)(implicit ec: ExecutionContext): Future[Unit] =
      admin.renameCollection("myDB", coll, coll + suffix).map(_ => {})
    db

    the name of the database where the collection exists with the current name

    from

    the current name of the collection, in the specified db

    to

    the new name of this collection (inside the same db)

    dropExisting

    If a collection of name to already exists, then drops that collection before renaming this one.

    returns

    a failure if the dropExisting option is false and the target collection already exists

    Definition Classes
    DBMetaCommands
  48. def runCommand(command: Document, failoverStrategy: FailoverStrategy): CursorFetcher[pack.type, Cursor]

    Permalink

    Run a raw command (represented by a document).

    Run a raw command (represented by a document).

    import reactivemongo.api.FailoverStrategy
    import reactivemongo.api.bson.BSONDocument
    
    def getUsers(db: reactivemongo.api.DB) =
      db.runCommand(BSONDocument("usersInfo" -> 1), FailoverStrategy.default)
    command

    the command to be executed on the current database

    failoverStrategy

    the failover strategy to override the default one

    returns

    A cursor for the command results

    Annotations
    @SuppressWarnings()
  49. def runCommand[C <: Command](command: C, failoverStrategy: FailoverStrategy)(implicit writer: Writer[C]): CursorFetcher[pack.type, Cursor]

    Permalink

    C

    the reactivemongo.api.commands.Command type

    command

    the command to be executed on the current database

    failoverStrategy

    the failover strategy to override the default one

    writer

    the writer for the command

    returns

    A cursor for the command results

    Annotations
    @SuppressWarnings()
  50. def runCommand[R, C <: Command with CommandWithResult[R]](command: C with CommandWithResult[R], failoverStrategy: FailoverStrategy = FailoverStrategy.default, readPreference: ReadPreference = this.defaultReadPreference)(implicit writer: Writer[C], reader: Reader[R], ec: ExecutionContext): Future[R]

    Permalink

    R

    the result type

    C

    the reactivemongo.api.commands.Command type

    command

    the command to be executed on the current database

    failoverStrategy

    the failover strategy to override the default one

    readPreference

    the read preference for the result

    writer

    the writer for the command

    reader

    the reader for the result of command execution

    returns

    A single result from command execution

    Annotations
    @SuppressWarnings()
  51. def startSession(failIfAlreadyStarted: Boolean)(implicit ec: ExecutionContext): Future[DB]

    Permalink

    Starts a new session (since MongoDB 3.6).

    Starts a new session (since MongoDB 3.6).

    import scala.concurrent.ExecutionContext
    import reactivemongo.api.DB
    
    def startIt(db: DB)(implicit ec: ExecutionContext) =
      db.startSession(failIfAlreadyStarted = true)
    failIfAlreadyStarted

    if true fails if a session is already started

    returns

    The database reference updated with a new session, if none is already started with the current reference.

  52. def startSession()(implicit ec: ExecutionContext): Future[DB]

    Permalink

    Starts a new session (since MongoDB 3.6), does nothing if a session has already being started .

    Starts a new session (since MongoDB 3.6), does nothing if a session has already being started .

    import scala.concurrent.ExecutionContext
    import reactivemongo.api.DB
    
    def equivalentTo(db: DB)(implicit ec: ExecutionContext) =
      db.startSession(failIfAlreadyStarted = false)
    returns

    The database reference updated with a new session

    Annotations
    @inline()
  53. def startTransaction(writeConcern: Option[WriteConcern], failIfAlreadyStarted: Boolean)(implicit ec: ExecutionContext): Future[DB]

    Permalink

    Starts a transaction (since MongoDB 4.0), if none is already started with the current client session otherwise does nothing.

    Starts a transaction (since MongoDB 4.0), if none is already started with the current client session otherwise does nothing.

    It fails if no session is previously started (see startSession).

    import scala.concurrent.ExecutionContext
    import reactivemongo.api.{ DB, WriteConcern }
    
    def doIt(db: DB, aWriteConcern: Option[WriteConcern])(
      implicit ec: ExecutionContext) =
      db.startTransaction(aWriteConcern, failIfAlreadyStarted = true)
    writeConcern

    the write concern for the transaction operation

    returns

    The database reference with transaction.

  54. def startTransaction(writeConcern: Option[WriteConcern])(implicit ec: ExecutionContext): Future[DB]

    Permalink

    Starts a transaction (since MongoDB 4.0), if none is already started with the current client session otherwise does nothing.

    Starts a transaction (since MongoDB 4.0), if none is already started with the current client session otherwise does nothing.

    It fails if no session is previously started (see startSession).

    import scala.concurrent.ExecutionContext
    import reactivemongo.api.{ DB, WriteConcern }
    
    def equivalentTo(db: DB, aWriteConcern: Option[WriteConcern])(
      implicit ec: ExecutionContext) =
      db.startTransaction(aWriteConcern, failIfAlreadyStarted = false)
    writeConcern

    the write concern for the transaction operation

    returns

    The database reference with transaction.

    Annotations
    @inline()
  55. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  56. def toString(): String

    Permalink
    Definition Classes
    DB → AnyRef → Any
  57. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  58. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  59. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  60. def [B](y: B): (DB, B)

    Permalink
    Implicit information
    This member is added by an implicit conversion from DB to ArrowAssoc[DB] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc

Inherited from PackSupport[Pack]

Inherited from DBMetaCommands

Inherited from CreateUserCommand[Pack]

Inherited from AnyRef

Inherited from Any

Inherited by implicit conversion any2stringadd from DB to any2stringadd[DB]

Inherited by implicit conversion StringFormat from DB to StringFormat[DB]

Inherited by implicit conversion Ensuring from DB to Ensuring[DB]

Inherited by implicit conversion ArrowAssoc from DB to ArrowAssoc[DB]

Ungrouped