Packages

case class MongoClient(wrapped: com.mongodb.reactivestreams.client.MongoClient) extends MongoCluster with Closeable with Product with Serializable

A client-side representation of a MongoDB cluster. Instances can represent either a standalone MongoDB instance, a replica set, or a sharded cluster. Instance of this class are responsible for maintaining an up-to-date state of the cluster, and possibly cache resources related to this, including background threads for monitoring, and connection pools.

Instance of this class server as factories for MongoDatabase instances.

wrapped

the underlying java MongoClient

Since

1.0

Linear Supertypes
Serializable, Product, Equals, Closeable, AutoCloseable, MongoCluster, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. MongoClient
  2. Serializable
  3. Product
  4. Equals
  5. Closeable
  6. AutoCloseable
  7. MongoCluster
  8. AnyRef
  9. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new MongoClient(wrapped: com.mongodb.reactivestreams.client.MongoClient)

    wrapped

    the underlying java MongoClient

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def appendMetadata(mongoDriverInformation: MongoDriverInformation): Unit

    Appends the provided MongoDriverInformation to the existing metadata.

    Appends the provided MongoDriverInformation to the existing metadata.

    This enables frameworks and libraries to include identifying metadata (e.g., name, version, platform) which might be visible in the MongoD/MongoS logs. This can assist with diagnostics by making client identity visible to the server.

    **Note:** Metadata is limited to 512 bytes; any excess will be truncated.

    mongoDriverInformation

    the driver information to append to the existing metadata

    Since

    5.6

  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def bulkWrite(clientSession: ClientSession, models: List[_ <: ClientNamespacedWriteModel], options: ClientBulkWriteOptions): SingleObservable[ClientBulkWriteResult]

    Executes a client-level bulk write operation.

    Executes a client-level bulk write operation.

    This operation supports retryable writes. Depending on the number of models, encoded size of models, and the size limits in effect, executing this operation may require multiple bulkWrite commands. The eligibility for retries is determined per each bulkWrite command: org.mongodb.scala.model.bulk.ClientNamespacedUpdateManyModel, org.mongodb.scala.model.bulk.ClientNamespacedDeleteManyModel in a command render it non-retryable.

    bulkWrite

    clientSession

    The client session with which to associate this operation.

    models

    The org.mongodb.scala.model.bulk.ClientNamespacedWriteModel individual write operations.

    options

    The options.

    returns

    The SingleObservable signalling at most one element org.mongodb.scala.model.bulk.ClientBulkWriteResult if the operation is successful, or the following errors:

    Definition Classes
    MongoCluster
    Since

    5.4

    Note

    Requires MongoDB 8.0 or greater.

  7. def bulkWrite(clientSession: ClientSession, models: List[_ <: ClientNamespacedWriteModel]): SingleObservable[ClientBulkWriteResult]

    Executes a client-level bulk write operation.

    Executes a client-level bulk write operation. This method is functionally equivalent to bulkWrite(ClientSession, List, ClientBulkWriteOptions) with the default options.

    This operation supports retryable writes. Depending on the number of models, encoded size of models, and the size limits in effect, executing this operation may require multiple bulkWrite commands. The eligibility for retries is determined per each bulkWrite command: org.mongodb.scala.model.bulk.ClientNamespacedUpdateManyModel, org.mongodb.scala.model.bulk.ClientNamespacedDeleteManyModel in a command render it non-retryable.

    bulkWrite

    clientSession

    client session with which to associate this operation.

    models

    The org.mongodb.scala.model.bulk.ClientNamespacedWriteModel individual write operations.

    returns

    The SingleObservable signalling at most one element org.mongodb.scala.model.bulk.ClientBulkWriteResult if the operation is successful, or the following errors:

    Definition Classes
    MongoCluster
    Since

    5.4

    Note

    Requires MongoDB 8.0 or greater.

  8. def bulkWrite(models: List[_ <: ClientNamespacedWriteModel], options: ClientBulkWriteOptions): SingleObservable[ClientBulkWriteResult]

    Executes a client-level bulk write operation.

    Executes a client-level bulk write operation.

    This operation supports retryable writes. Depending on the number of models, encoded size of models, and the size limits in effect, executing this operation may require multiple bulkWrite commands. The eligibility for retries is determined per each bulkWrite command: org.mongodb.scala.model.bulk.ClientNamespacedUpdateManyModel, org.mongodb.scala.model.bulk.ClientNamespacedDeleteManyModel in a command render it non-retryable.

    bulkWrite

    models

    The org.mongodb.scala.model.bulk.ClientNamespacedWriteModel individual write operations.

    options

    The options.

    returns

    The SingleObservable signalling at most one element org.mongodb.scala.model.bulk.ClientBulkWriteResult if the operation is successful, or the following errors:

    Definition Classes
    MongoCluster
    Since

    5.4

    Note

    Requires MongoDB 8.0 or greater.

  9. def bulkWrite(models: List[_ <: ClientNamespacedWriteModel]): SingleObservable[ClientBulkWriteResult]

    Executes a client-level bulk write operation.

    Executes a client-level bulk write operation. This method is functionally equivalent to bulkWrite(List, ClientBulkWriteOptions) with the default options.

    This operation supports retryable writes. Depending on the number of models, encoded size of models, and the size limits in effect, executing this operation may require multiple bulkWrite commands. The eligibility for retries is determined per each bulkWrite command: org.mongodb.scala.model.bulk.ClientNamespacedUpdateManyModel, org.mongodb.scala.model.bulk.ClientNamespacedDeleteManyModel in a command render it non-retryable.

    bulkWrite

    models

    The org.mongodb.scala.model.bulk.ClientNamespacedWriteModel individual write operations.

    returns

    The SingleObservable signalling at most one element org.mongodb.scala.model.bulk.ClientBulkWriteResult if the operation is successful, or the following errors:

    Definition Classes
    MongoCluster
    Since

    5.4

    Note

    Requires MongoDB 8.0 or greater.

  10. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
  11. def close(): Unit

    Close the client, which will close all underlying cached resources, including, for example, sockets and background monitoring threads.

    Close the client, which will close all underlying cached resources, including, for example, sockets and background monitoring threads.

    Definition Classes
    MongoClient → Closeable → AutoCloseable
  12. lazy val codecRegistry: CodecRegistry

    Get the codec registry for the MongoDatabase.

    Get the codec registry for the MongoDatabase.

    returns

    the { @link org.bson.codecs.configuration.CodecRegistry}

    Definition Classes
    MongoCluster
  13. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  14. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @IntrinsicCandidate() @native()
  15. def getClusterDescription: ClusterDescription

    Gets the current cluster description.

    Gets the current cluster description.

    This method will not block, meaning that it may return a ClusterDescription whose clusterType is unknown and whose { @link com.mongodb.connection.ServerDescription}s are all in the connecting state. If the application requires notifications after the driver has connected to a member of the cluster, it should register a ClusterListener via the ClusterSettings in MongoClientSettings.

    returns

    the current cluster description

    Since

    4.1

  16. def getDatabase(name: String): MongoDatabase

    Gets the database with the given name.

    Gets the database with the given name.

    name

    the name of the database

    returns

    the database

    Definition Classes
    MongoCluster
  17. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  18. def listDatabaseNames(clientSession: ClientSession): Observable[String]

    Get a list of the database names

    Get a list of the database names

    List Databases

    clientSession

    the client session with which to associate this operation

    returns

    an iterable containing all the names of all the databases

    Definition Classes
    MongoCluster
    Since

    2.2

    Note

    Requires MongoDB 3.6 or greater

  19. def listDatabaseNames(): Observable[String]

    Get a list of the database names

    Get a list of the database names

    List Databases

    returns

    an iterable containing all the names of all the databases

    Definition Classes
    MongoCluster
  20. def listDatabases[TResult](clientSession: ClientSession)(implicit e: DefaultsTo[TResult, Document], ct: ClassTag[TResult]): ListDatabasesObservable[TResult]

    Gets the list of databases

    Gets the list of databases

    TResult

    the type of the class to use instead of Document.

    clientSession

    the client session with which to associate this operation

    returns

    the fluent list databases interface

    Definition Classes
    MongoCluster
    Since

    2.2

    Note

    Requires MongoDB 3.6 or greater

  21. def listDatabases[TResult]()(implicit e: DefaultsTo[TResult, Document], ct: ClassTag[TResult]): ListDatabasesObservable[TResult]

    Gets the list of databases

    Gets the list of databases

    TResult

    the type of the class to use instead of Document.

    returns

    the fluent list databases interface

    Definition Classes
    MongoCluster
  22. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  23. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @IntrinsicCandidate() @native()
  24. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @IntrinsicCandidate() @native()
  25. def productElementNames: Iterator[String]
    Definition Classes
    Product
  26. lazy val readConcern: com.mongodb.ReadConcern

    Get the read concern for the MongoDatabase.

    Get the read concern for the MongoDatabase.

    returns

    the ReadConcern

    Definition Classes
    MongoCluster
  27. lazy val readPreference: com.mongodb.ReadPreference

    Get the read preference for the MongoDatabase.

    Get the read preference for the MongoDatabase.

    returns

    the { @link com.mongodb.ReadPreference}

    Definition Classes
    MongoCluster
  28. def startSession(options: ClientSessionOptions): SingleObservable[ClientSession]

    Creates a client session.

    Creates a client session.

    Note: A ClientSession instance can not be used concurrently in multiple asynchronous operations.

    options

    the options for the client session

    Definition Classes
    MongoCluster
    Since

    2.2

    Note

    Requires MongoDB 3.6 or greater

  29. def startSession(): SingleObservable[ClientSession]

    Creates a client session.

    Creates a client session.

    Note: A ClientSession instance can not be used concurrently in multiple asynchronous operations.

    Definition Classes
    MongoCluster
    Since

    2.4

    Note

    Requires MongoDB 3.6 or greater

  30. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  31. lazy val timeout: Option[Duration]

    The time limit for the full execution of an operation.

    The time limit for the full execution of an operation.

    If not null the following deprecated options will be ignored: waitQueueTimeoutMS, socketTimeoutMS, wTimeoutMS, maxTimeMS and maxCommitTimeMS.

    • null means that the timeout mechanism for operations will defer to using:
      • waitQueueTimeoutMS: The maximum wait time in milliseconds that a thread may wait for a connection to become available
      • socketTimeoutMS: How long a send or receive on a socket can take before timing out.
      • wTimeoutMS: How long the server will wait for the write concern to be fulfilled before timing out.
      • maxTimeMS: The time limit for processing operations on a cursor. See: [cursor.maxTimeMS](https://docs.mongodb.com/manual/reference/method/cursor.maxTimeMS").
      • maxCommitTimeMS: The maximum amount of time to allow a single commitTransaction command to execute.
    • 0 means infinite timeout.
    • > 0 The time limit to use for the full execution of an operation.
    returns

    the optional timeout duration

    Definition Classes
    MongoCluster
    Annotations
    @Alpha()
  32. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  33. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  34. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  35. def watch[C](clientSession: ClientSession, pipeline: Seq[Bson])(implicit e: DefaultsTo[C, Document], ct: ClassTag[C]): ChangeStreamObservable[C]

    Creates a change stream for this collection.

    Creates a change stream for this collection.

    C

    the target document type of the observable.

    clientSession

    the client session with which to associate this operation

    pipeline

    the aggregation pipeline to apply to the change stream

    returns

    the change stream observable

    Definition Classes
    MongoCluster
    Since

    2.4

    Note

    Requires MongoDB 4.0 or greater

  36. def watch[C](clientSession: ClientSession)(implicit e: DefaultsTo[C, Document], ct: ClassTag[C]): ChangeStreamObservable[C]

    Creates a change stream for this collection.

    Creates a change stream for this collection.

    C

    the target document type of the observable.

    clientSession

    the client session with which to associate this operation

    returns

    the change stream observable

    Definition Classes
    MongoCluster
    Since

    2.4

    Note

    Requires MongoDB 4.0 or greater

  37. def watch[C](pipeline: Seq[Bson])(implicit e: DefaultsTo[C, Document], ct: ClassTag[C]): ChangeStreamObservable[C]

    Creates a change stream for this collection.

    Creates a change stream for this collection.

    C

    the target document type of the observable.

    pipeline

    the aggregation pipeline to apply to the change stream

    returns

    the change stream observable

    Definition Classes
    MongoCluster
    Since

    2.4

    Note

    Requires MongoDB 4.0 or greater

  38. def watch[C]()(implicit e: DefaultsTo[C, Document], ct: ClassTag[C]): ChangeStreamObservable[C]

    Creates a change stream for this collection.

    Creates a change stream for this collection.

    C

    the target document type of the observable.

    returns

    the change stream observable

    Definition Classes
    MongoCluster
    Since

    2.4

    Note

    Requires MongoDB 4.0 or greater

  39. def withCodecRegistry(codecRegistry: CodecRegistry): MongoCluster

    Create a new MongoCluster instance with a different codec registry.

    Create a new MongoCluster instance with a different codec registry.

    The { @link CodecRegistry} configured by this method is effectively treated by the driver as an instance of { @link CodecProvider}, which { @link CodecRegistry} extends. So there is no benefit to defining a class that implements { @link CodecRegistry}. Rather, an application should always create { @link CodecRegistry} instances using the factory methods in { @link CodecRegistries}.

    codecRegistry

    the new { @link org.bson.codecs.configuration.CodecRegistry} for the collection

    returns

    a new MongoCluster instance with the different codec registry

    Definition Classes
    MongoCluster
    See also

    CodecRegistries

  40. def withReadConcern(readConcern: com.mongodb.ReadConcern): MongoCluster

    Create a new MongoCluster instance with a different read concern.

    Create a new MongoCluster instance with a different read concern.

    readConcern

    the new ReadConcern for the collection

    returns

    a new MongoCluster instance with the different ReadConcern

    Definition Classes
    MongoCluster
    Since

    1.1

  41. def withReadPreference(readPreference: com.mongodb.ReadPreference): MongoCluster

    Create a new MongoCluster instance with a different read preference.

    Create a new MongoCluster instance with a different read preference.

    readPreference

    the new { @link com.mongodb.ReadPreference} for the collection

    returns

    a new MongoCluster instance with the different readPreference

    Definition Classes
    MongoCluster
  42. def withTimeout(timeout: Duration): MongoCluster

    Create a new MongoCluster instance with the set time limit for the full execution of an operation.

    Create a new MongoCluster instance with the set time limit for the full execution of an operation.

    - 0 means infinite timeout. - > 0 The time limit to use for the full execution of an operation.

    timeout

    the timeout, which must be greater than or equal to 0

    returns

    a new MongoCluster instance with the set time limit for operations

    Definition Classes
    MongoCluster
    Annotations
    @Alpha()
    Since

    5.2

  43. def withWriteConcern(writeConcern: com.mongodb.WriteConcern): MongoCluster

    Create a new MongoCluster instance with a different write concern.

    Create a new MongoCluster instance with a different write concern.

    writeConcern

    the new { @link com.mongodb.WriteConcern} for the collection

    returns

    a new MongoCluster instance with the different writeConcern

    Definition Classes
    MongoCluster
  44. val wrapped: com.mongodb.reactivestreams.client.MongoClient
    Attributes
    protected[scala]
  45. lazy val writeConcern: com.mongodb.WriteConcern

    Get the write concern for the MongoDatabase.

    Get the write concern for the MongoDatabase.

    returns

    the { @link com.mongodb.WriteConcern}

    Definition Classes
    MongoCluster

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

    (Since version 9)

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from Closeable

Inherited from AutoCloseable

Inherited from MongoCluster

Inherited from AnyRef

Inherited from Any

Ungrouped