Interface MongoDatabase


@ThreadSafe public interface MongoDatabase
The MongoDatabase interface.

Note: Additions to this interface will not be considered to break binary compatibility.

Since:
1.0
  • Method Details

    • getName

      String getName()
      Gets the name of the database.
      Returns:
      the database name
    • getCodecRegistry

      CodecRegistry getCodecRegistry()
      Get the codec registry for the MongoDatabase.
      Returns:
      the CodecRegistry
    • getReadPreference

      ReadPreference getReadPreference()
      Get the read preference for the MongoDatabase.
      Returns:
      the ReadPreference
    • getWriteConcern

      WriteConcern getWriteConcern()
      Get the write concern for the MongoDatabase.
      Returns:
      the WriteConcern
    • getReadConcern

      ReadConcern getReadConcern()
      Get the read concern for the MongoCollection.
      Returns:
      the ReadConcern
      Since:
      1.2
      Since server release
      3.2
    • getTimeout

      @Alpha(CLIENT) @Nullable Long getTimeout(TimeUnit timeUnit)
      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 cumulative time limit for processing operations on a cursor. See: cursor.maxTimeMS.
        • maxCommitTimeMS: The maximum amount of time to allow a single commitTransaction command to execute. See: TransactionOptions.getMaxCommitTime(java.util.concurrent.TimeUnit).
      • 0 means infinite timeout.
      • > 0 The time limit to use for the full execution of an operation.
      Parameters:
      timeUnit - the time unit
      Returns:
      the timeout in the given time unit
      Since:
      5.2
    • withCodecRegistry

      MongoDatabase withCodecRegistry(CodecRegistry codecRegistry)
      Create a new MongoDatabase instance with a different codec registry.

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

      Parameters:
      codecRegistry - the new CodecRegistry for the collection
      Returns:
      a new MongoDatabase instance with the different codec registry
      See Also:
    • withReadPreference

      MongoDatabase withReadPreference(ReadPreference readPreference)
      Create a new MongoDatabase instance with a different read preference.
      Parameters:
      readPreference - the new ReadPreference for the collection
      Returns:
      a new MongoDatabase instance with the different readPreference
    • withWriteConcern

      MongoDatabase withWriteConcern(WriteConcern writeConcern)
      Create a new MongoDatabase instance with a different write concern.
      Parameters:
      writeConcern - the new WriteConcern for the collection
      Returns:
      a new MongoDatabase instance with the different writeConcern
    • withReadConcern

      MongoDatabase withReadConcern(ReadConcern readConcern)
      Create a new MongoDatabase instance with a different read concern.
      Parameters:
      readConcern - the new ReadConcern for the collection
      Returns:
      a new MongoDatabase instance with the different ReadConcern
      Since:
      1.2
      Since server release
      3.2
    • withTimeout

      @Alpha(CLIENT) MongoDatabase withTimeout(long timeout, TimeUnit timeUnit)
      Create a new MongoDatabase 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.
      Parameters:
      timeout - the timeout, which must be greater than or equal to 0
      timeUnit - the time unit
      Returns:
      a new MongoDatabase instance with the set time limit for the full execution of an operation.
      Since:
      5.2
      See Also:
    • getCollection

      MongoCollection<Document> getCollection(String collectionName)
      Gets a collection.
      Parameters:
      collectionName - the name of the collection to return
      Returns:
      the collection
    • getCollection

      <TDocument> MongoCollection<TDocument> getCollection(String collectionName, Class<TDocument> clazz)
      Gets a collection, with a specific default document class.
      Type Parameters:
      TDocument - the type of the class to use instead of Document.
      Parameters:
      collectionName - the name of the collection to return
      clazz - the default class to cast any documents returned from the database into.
      Returns:
      the collection
    • runCommand

      Publisher<Document> runCommand(Bson command)
      Executes command in the context of the current database.

      Note: The behavior of runCommand is undefined if the provided command document includes a maxTimeMS field and the timeoutMS setting has been set.

      Parameters:
      command - the command to be run
      Returns:
      a publisher containing the command result
    • runCommand

      Publisher<Document> runCommand(Bson command, ReadPreference readPreference)
      Executes command in the context of the current database.

      Note: The behavior of runCommand is undefined if the provided command document includes a maxTimeMS field and the timeoutMS setting has been set.

      Parameters:
      command - the command to be run
      readPreference - the ReadPreference to be used when executing the command
      Returns:
      a publisher containing the command result
    • runCommand

      <TResult> Publisher<TResult> runCommand(Bson command, Class<TResult> clazz)
      Executes command in the context of the current database.

      Note: The behavior of runCommand is undefined if the provided command document includes a maxTimeMS field and the timeoutMS setting has been set.

      Type Parameters:
      TResult - the type of the class to use instead of Document.
      Parameters:
      command - the command to be run
      clazz - the default class to cast any documents returned from the database into.
      Returns:
      a publisher containing the command result
    • runCommand

      <TResult> Publisher<TResult> runCommand(Bson command, ReadPreference readPreference, Class<TResult> clazz)
      Executes command in the context of the current database.

      Note: The behavior of runCommand is undefined if the provided command document includes a maxTimeMS field and the timeoutMS setting has been set.

      Type Parameters:
      TResult - the type of the class to use instead of Document.
      Parameters:
      command - the command to be run
      readPreference - the ReadPreference to be used when executing the command
      clazz - the default class to cast any documents returned from the database into.
      Returns:
      a publisher containing the command result
    • runCommand

      Publisher<Document> runCommand(ClientSession clientSession, Bson command)
      Executes command in the context of the current database.

      Note: The behavior of runCommand is undefined if the provided command document includes a maxTimeMS field and the timeoutMS setting has been set.

      Parameters:
      clientSession - the client session with which to associate this operation
      command - the command to be run
      Returns:
      a publisher containing the command result
      Since:
      1.7
      Since server release
      3.6
    • runCommand

      Publisher<Document> runCommand(ClientSession clientSession, Bson command, ReadPreference readPreference)
      Executes command in the context of the current database.

      Note: The behavior of runCommand is undefined if the provided command document includes a maxTimeMS field and the timeoutMS setting has been set.

      Parameters:
      clientSession - the client session with which to associate this operation
      command - the command to be run
      readPreference - the ReadPreference to be used when executing the command
      Returns:
      a publisher containing the command result
      Since:
      1.7
      Since server release
      3.6
    • runCommand

      <TResult> Publisher<TResult> runCommand(ClientSession clientSession, Bson command, Class<TResult> clazz)
      Executes command in the context of the current database.

      Note: The behavior of runCommand is undefined if the provided command document includes a maxTimeMS field and the timeoutMS setting has been set.

      Type Parameters:
      TResult - the type of the class to use instead of Document.
      Parameters:
      clientSession - the client session with which to associate this operation
      command - the command to be run
      clazz - the default class to cast any documents returned from the database into.
      Returns:
      a publisher containing the command result
      Since:
      1.7
      Since server release
      3.6
    • runCommand

      <TResult> Publisher<TResult> runCommand(ClientSession clientSession, Bson command, ReadPreference readPreference, Class<TResult> clazz)
      Executes command in the context of the current database.

      Note: The behavior of runCommand is undefined if the provided command document includes a maxTimeMS field and the timeoutMS setting has been set.

      Type Parameters:
      TResult - the type of the class to use instead of Document.
      Parameters:
      clientSession - the client session with which to associate this operation
      command - the command to be run
      readPreference - the ReadPreference to be used when executing the command
      clazz - the default class to cast any documents returned from the database into.
      Returns:
      a publisher containing the command result
      Since:
      1.7
      Since server release
      3.6
    • drop

      Publisher<Void> drop()
      Drops this database.
      Returns:
      a publisher identifying when the database has been dropped
      MongoDB documentation
      Drop database
    • drop

      Publisher<Void> drop(ClientSession clientSession)
      Drops this database.
      Parameters:
      clientSession - the client session with which to associate this operation
      Returns:
      a publisher identifying when the database has been dropped
      Since:
      1.7
      MongoDB documentation
      Drop database
      Since server release
      3.6
    • listCollectionNames

      ListCollectionNamesPublisher listCollectionNames()
      Gets the names of all the collections in this database.
      Returns:
      a publisher with all the names of all the collections in this database
      MongoDB documentation
      listCollections
    • listCollectionNames

      ListCollectionNamesPublisher listCollectionNames(ClientSession clientSession)
      Gets the names of all the collections in this database.
      Parameters:
      clientSession - the client session with which to associate this operation
      Returns:
      a publisher with all the names of all the collections in this database
      Since:
      1.7
      MongoDB documentation
      listCollections
      Since server release
      3.6
    • listCollections

      Finds all the collections in this database.
      Returns:
      the fluent list collections interface
      MongoDB documentation
      listCollections
    • listCollections

      <TResult> ListCollectionsPublisher<TResult> listCollections(Class<TResult> clazz)
      Finds all the collections in this database.
      Type Parameters:
      TResult - the target document type of the iterable.
      Parameters:
      clazz - the class to decode each document into
      Returns:
      the fluent list collections interface
      MongoDB documentation
      listCollections
    • listCollections

      ListCollectionsPublisher<Document> listCollections(ClientSession clientSession)
      Finds all the collections in this database.
      Parameters:
      clientSession - the client session with which to associate this operation
      Returns:
      the fluent list collections interface
      Since:
      1.7
      MongoDB documentation
      listCollections
      Since server release
      3.6
    • listCollections

      <TResult> ListCollectionsPublisher<TResult> listCollections(ClientSession clientSession, Class<TResult> clazz)
      Finds all the collections in this database.
      Type Parameters:
      TResult - the target document type of the iterable.
      Parameters:
      clientSession - the client session with which to associate this operation
      clazz - the class to decode each document into
      Returns:
      the fluent list collections interface
      Since:
      1.7
      MongoDB documentation
      listCollections
      Since server release
      3.6
    • createCollection

      Publisher<Void> createCollection(String collectionName)
      Create a new collection with the given name.
      Parameters:
      collectionName - the name for the new collection to create
      Returns:
      a publisher identifying when the collection has been created
      MongoDB documentation
      Create Command
    • createCollection

      Publisher<Void> createCollection(String collectionName, CreateCollectionOptions options)
      Create a new collection with the selected options
      Parameters:
      collectionName - the name for the new collection to create
      options - various options for creating the collection
      Returns:
      a publisher identifying when the collection has been created
      MongoDB documentation
      Create Command
    • createCollection

      Publisher<Void> createCollection(ClientSession clientSession, String collectionName)
      Create a new collection with the given name.
      Parameters:
      clientSession - the client session with which to associate this operation
      collectionName - the name for the new collection to create
      Returns:
      a publisher identifying when the collection has been created
      Since:
      1.7
      MongoDB documentation
      Create Command
      Since server release
      3.6
    • createCollection

      Publisher<Void> createCollection(ClientSession clientSession, String collectionName, CreateCollectionOptions options)
      Create a new collection with the selected options
      Parameters:
      clientSession - the client session with which to associate this operation
      collectionName - the name for the new collection to create
      options - various options for creating the collection
      Returns:
      a publisher identifying when the collection has been created
      Since:
      1.7
      MongoDB documentation
      Create Command
      Since server release
      3.6
    • createView

      Publisher<Void> createView(String viewName, String viewOn, List<? extends Bson> pipeline)
      Creates a view with the given name, backing collection/view name, and aggregation pipeline that defines the view.
      Parameters:
      viewName - the name of the view to create
      viewOn - the backing collection/view for the view
      pipeline - the pipeline that defines the view
      Returns:
      an observable identifying when the collection view has been created
      Since:
      1.3
      MongoDB documentation
      Create Command
      Since server release
      3.4
    • createView

      Publisher<Void> createView(String viewName, String viewOn, List<? extends Bson> pipeline, CreateViewOptions createViewOptions)
      Creates a view with the given name, backing collection/view name, aggregation pipeline, and options that defines the view.
      Parameters:
      viewName - the name of the view to create
      viewOn - the backing collection/view for the view
      pipeline - the pipeline that defines the view
      createViewOptions - various options for creating the view
      Returns:
      an observable identifying when the collection view has been created
      Since:
      1.3
      MongoDB documentation
      Create Command
      Since server release
      3.4
    • createView

      Publisher<Void> createView(ClientSession clientSession, String viewName, String viewOn, List<? extends Bson> pipeline)
      Creates a view with the given name, backing collection/view name, and aggregation pipeline that defines the view.
      Parameters:
      clientSession - the client session with which to associate this operation
      viewName - the name of the view to create
      viewOn - the backing collection/view for the view
      pipeline - the pipeline that defines the view
      Returns:
      an observable identifying when the collection view has been created
      Since:
      1.7
      MongoDB documentation
      Create Command
      Since server release
      3.6
    • createView

      Publisher<Void> createView(ClientSession clientSession, String viewName, String viewOn, List<? extends Bson> pipeline, CreateViewOptions createViewOptions)
      Creates a view with the given name, backing collection/view name, aggregation pipeline, and options that defines the view.
      Parameters:
      clientSession - the client session with which to associate this operation
      viewName - the name of the view to create
      viewOn - the backing collection/view for the view
      pipeline - the pipeline that defines the view
      createViewOptions - various options for creating the view
      Returns:
      an observable identifying when the collection view has been created
      Since:
      1.7
      MongoDB documentation
      Create Command
      Since server release
      3.6
    • watch

      Creates a change stream for this database.
      Returns:
      the change stream iterable
      Since:
      1.9
      MongoDB documentation
      Change Streams
      Since server release
      4.0
    • watch

      <TResult> ChangeStreamPublisher<TResult> watch(Class<TResult> resultClass)
      Creates a change stream for this database.
      Type Parameters:
      TResult - the target document type of the iterable.
      Parameters:
      resultClass - the class to decode each document into
      Returns:
      the change stream iterable
      Since:
      1.9
      MongoDB documentation
      Change Streams
      Since server release
      4.0
    • watch

      ChangeStreamPublisher<Document> watch(List<? extends Bson> pipeline)
      Creates a change stream for this database.
      Parameters:
      pipeline - the aggregation pipeline to apply to the change stream.
      Returns:
      the change stream iterable
      Since:
      1.9
      MongoDB documentation
      Change Streams
      Since server release
      4.0
    • watch

      <TResult> ChangeStreamPublisher<TResult> watch(List<? extends Bson> pipeline, Class<TResult> resultClass)
      Creates a change stream for this database.
      Type Parameters:
      TResult - the target document type of the iterable.
      Parameters:
      pipeline - the aggregation pipeline to apply to the change stream
      resultClass - the class to decode each document into
      Returns:
      the change stream iterable
      Since:
      1.9
      MongoDB documentation
      Change Streams
      Since server release
      4.0
    • watch

      Creates a change stream for this database.
      Parameters:
      clientSession - the client session with which to associate this operation
      Returns:
      the change stream iterable
      Since:
      1.9
      MongoDB documentation
      Change Streams
      Since server release
      4.0
    • watch

      <TResult> ChangeStreamPublisher<TResult> watch(ClientSession clientSession, Class<TResult> resultClass)
      Creates a change stream for this database.
      Type Parameters:
      TResult - the target document type of the iterable.
      Parameters:
      clientSession - the client session with which to associate this operation
      resultClass - the class to decode each document into
      Returns:
      the change stream iterable
      Since:
      1.9
      MongoDB documentation
      Change Streams
      Since server release
      4.0
    • watch

      ChangeStreamPublisher<Document> watch(ClientSession clientSession, List<? extends Bson> pipeline)
      Creates a change stream for this database.
      Parameters:
      clientSession - the client session with which to associate this operation
      pipeline - the aggregation pipeline to apply to the change stream.
      Returns:
      the change stream iterable
      Since:
      1.9
      MongoDB documentation
      Change Streams
      Since server release
      4.0
    • watch

      <TResult> ChangeStreamPublisher<TResult> watch(ClientSession clientSession, List<? extends Bson> pipeline, Class<TResult> resultClass)
      Creates a change stream for this database.
      Type Parameters:
      TResult - the target document type of the iterable.
      Parameters:
      clientSession - the client session with which to associate this operation
      pipeline - the aggregation pipeline to apply to the change stream
      resultClass - the class to decode each document into
      Returns:
      the change stream iterable
      Since:
      1.9
      MongoDB documentation
      Change Streams
      Since server release
      4.0
    • aggregate

      AggregatePublisher<Document> aggregate(List<? extends Bson> pipeline)
      Runs an aggregation framework pipeline on the database for pipeline stages that do not require an underlying collection, such as $currentOp and $listLocalSessions.
      Parameters:
      pipeline - the aggregation pipeline
      Returns:
      an iterable containing the result of the aggregation operation
      Since:
      1.11
      MongoDB documentation
      Aggregate Command
      Since server release
      3.6
    • aggregate

      <TResult> AggregatePublisher<TResult> aggregate(List<? extends Bson> pipeline, Class<TResult> resultClass)
      Runs an aggregation framework pipeline on the database for pipeline stages that do not require an underlying collection, such as $currentOp and $listLocalSessions.
      Type Parameters:
      TResult - the target document type of the iterable.
      Parameters:
      pipeline - the aggregation pipeline
      resultClass - the class to decode each document into
      Returns:
      an iterable containing the result of the aggregation operation
      Since:
      1.11
      MongoDB documentation
      Aggregate Command
      Since server release
      3.6
    • aggregate

      AggregatePublisher<Document> aggregate(ClientSession clientSession, List<? extends Bson> pipeline)
      Runs an aggregation framework pipeline on the database for pipeline stages that do not require an underlying collection, such as $currentOp and $listLocalSessions.
      Parameters:
      clientSession - the client session with which to associate this operation
      pipeline - the aggregation pipeline
      Returns:
      an iterable containing the result of the aggregation operation
      Since:
      1.11
      MongoDB documentation
      Aggregate Command
      Since server release
      3.6
    • aggregate

      <TResult> AggregatePublisher<TResult> aggregate(ClientSession clientSession, List<? extends Bson> pipeline, Class<TResult> resultClass)
      Runs an aggregation framework pipeline on the database for pipeline stages that do not require an underlying collection, such as $currentOp and $listLocalSessions.
      Type Parameters:
      TResult - the target document type of the iterable.
      Parameters:
      clientSession - the client session with which to associate this operation
      pipeline - the aggregation pipeline
      resultClass - the class to decode each document into
      Returns:
      an iterable containing the result of the aggregation operation
      Since:
      1.11
      MongoDB documentation
      Aggregate Command
      Since server release
      3.6