class MongoCluster extends AnyRef
The client-side representation of a MongoDB cluster operations.
The originating MongoClient is responsible for the closing of resources. If the originator MongoClient is closed, then any operations will fail.
- Since
5.2
- See also
MongoClient
- Alphabetic
- By Inheritance
- MongoCluster
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new MongoCluster(wrapped: com.mongodb.reactivestreams.client.MongoCluster)
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- 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 ofmodels, and the size limits in effect, executing this operation may require multiplebulkWritecommands. The eligibility for retries is determined per eachbulkWritecommand: org.mongodb.scala.model.bulk.ClientNamespacedUpdateManyModel, org.mongodb.scala.model.bulk.ClientNamespacedDeleteManyModel in a command render it non-retryable.- 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:
- ClientBulkWriteException: If and only if the operation is unsuccessful or partially unsuccessful, and there is at least one of the following pieces of information to report: ClientBulkWriteException#getWriteConcernErrors, ClientBulkWriteException#getWriteErrors, ClientBulkWriteException#getPartialResult.
- MongoException: Only if the operation is unsuccessful.
- Since
5.4
- Note
Requires MongoDB 8.0 or greater.
- 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 ofmodels, and the size limits in effect, executing this operation may require multiplebulkWritecommands. The eligibility for retries is determined per eachbulkWritecommand: org.mongodb.scala.model.bulk.ClientNamespacedUpdateManyModel, org.mongodb.scala.model.bulk.ClientNamespacedDeleteManyModel in a command render it non-retryable.- 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:
- ClientBulkWriteException: If and only if the operation is unsuccessful or partially unsuccessful, and there is at least one of the following pieces of information to report: ClientBulkWriteException#getWriteConcernErrors, ClientBulkWriteException#getWriteErrors, ClientBulkWriteException#getPartialResult.
- MongoException: Only if the operation is unsuccessful.
- Since
5.4
- Note
Requires MongoDB 8.0 or greater.
- 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 ofmodels, and the size limits in effect, executing this operation may require multiplebulkWritecommands. The eligibility for retries is determined per eachbulkWritecommand: org.mongodb.scala.model.bulk.ClientNamespacedUpdateManyModel, org.mongodb.scala.model.bulk.ClientNamespacedDeleteManyModel in a command render it non-retryable.- 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:
- ClientBulkWriteException: If and only if the operation is unsuccessful or partially unsuccessful, and there is at least one of the following pieces of information to report: ClientBulkWriteException#getWriteConcernErrors, ClientBulkWriteException#getWriteErrors, ClientBulkWriteException#getPartialResult.
- MongoException: Only if the operation is unsuccessful.
- Since
5.4
- Note
Requires MongoDB 8.0 or greater.
- 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 ofmodels, and the size limits in effect, executing this operation may require multiplebulkWritecommands. The eligibility for retries is determined per eachbulkWritecommand: org.mongodb.scala.model.bulk.ClientNamespacedUpdateManyModel, org.mongodb.scala.model.bulk.ClientNamespacedDeleteManyModel in a command render it non-retryable.- 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:
- ClientBulkWriteException: If and only if the operation is unsuccessful or partially unsuccessful, and there is at least one of the following pieces of information to report: ClientBulkWriteException#getWriteConcernErrors, ClientBulkWriteException#getWriteErrors, ClientBulkWriteException#getPartialResult.
- MongoException: Only if the operation is unsuccessful.
- Since
5.4
- Note
Requires MongoDB 8.0 or greater.
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
- 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}
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- 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
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def listDatabaseNames(clientSession: ClientSession): Observable[String]
Get a list of the database names
Get a list of the database names
- clientSession
the client session with which to associate this operation
- returns
an iterable containing all the names of all the databases
- Since
2.2
- Note
Requires MongoDB 3.6 or greater
- def listDatabaseNames(): Observable[String]
Get a list of the database names
Get a list of the database names
- returns
an iterable containing all the names of all the databases
- 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
- Since
2.2
- Note
Requires MongoDB 3.6 or greater
- 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
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- lazy val readConcern: com.mongodb.ReadConcern
Get the read concern for the MongoDatabase.
Get the read concern for the MongoDatabase.
- returns
the ReadConcern
- 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}
- 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
- Since
2.2
- Note
Requires MongoDB 3.6 or greater
- 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.
- Since
2.4
- Note
Requires MongoDB 3.6 or greater
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- 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,maxTimeMSandmaxCommitTimeMS.nullmeans 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 availablesocketTimeoutMS: 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 singlecommitTransactioncommand to execute.
0means infinite timeout.> 0The time limit to use for the full execution of an operation.
- returns
the optional timeout duration
- Annotations
- @Alpha()
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- 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
- Since
2.4
- Note
Requires MongoDB 4.0 or greater
- 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
- Since
2.4
- Note
Requires MongoDB 4.0 or greater
- 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
- Since
2.4
- Note
Requires MongoDB 4.0 or greater
- 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
- Since
2.4
- Note
Requires MongoDB 4.0 or greater
- 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
- See also
CodecRegistries
- 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
- Since
1.1
- 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
- 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.
-
0means infinite timeout. -> 0The 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
- Annotations
- @Alpha()
- Since
5.2
- 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
- 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}
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
(Since version 9)
This is the documentation for the MongoDB Scala driver.
Driver structure
The mongodb scala driver.
To get started you need a MongoClient instance, either from a connection string or via a org.mongodb.scala.MongoClientSettings.
Notable packages include: