Interface MongoClient

All Superinterfaces:
AutoCloseable, Closeable

@Immutable public interface MongoClient extends Closeable
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.

Instances of this class serve as factories for MongoDatabase instances.

Instances of this class can be created via the MongoClients factory.

Since:
3.7
See Also:
  • Method Details

    • getDatabase

      MongoDatabase getDatabase(String databaseName)
      Gets a MongoDatabase instance for the given database name.
      Parameters:
      databaseName - the name of the database to retrieve
      Returns:
      a MongoDatabase representing the specified database
      Throws:
      IllegalArgumentException - if databaseName is invalid
      See Also:
    • startSession

      ClientSession startSession()
      Creates a client session with default options.

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

      Returns:
      the client session
      Since server release
      3.6
    • startSession

      ClientSession startSession(ClientSessionOptions options)
      Creates a client session.

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

      Parameters:
      options - the options for the client session
      Returns:
      the client session
      Since server release
      3.6
    • close

      void close()
      Close the client, which will close all underlying cached resources, including, for example, sockets and background monitoring threads.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
    • listDatabaseNames

      MongoIterable<String> listDatabaseNames()
      Get a list of the database names
      Returns:
      an iterable containing all the names of all the databases
      MongoDB documentation
      List Databases
    • listDatabaseNames

      MongoIterable<String> listDatabaseNames(ClientSession clientSession)
      Get a list of the database names
      Parameters:
      clientSession - the client session with which to associate this operation
      Returns:
      an iterable containing all the names of all the databases
      MongoDB documentation
      List Databases
      Since server release
      3.6
    • listDatabases

      Gets the list of databases
      Returns:
      the list databases iterable interface
    • listDatabases

      ListDatabasesIterable<Document> listDatabases(ClientSession clientSession)
      Gets the list of databases
      Parameters:
      clientSession - the client session with which to associate this operation
      Returns:
      the list databases iterable interface
      MongoDB documentation
      List Databases
      Since server release
      3.6
    • listDatabases

      <TResult> ListDatabasesIterable<TResult> listDatabases(Class<TResult> resultClass)
      Gets the list of databases
      Type Parameters:
      TResult - the type of the class to use instead of Document.
      Parameters:
      resultClass - the class to cast the database documents to
      Returns:
      the list databases iterable interface
    • listDatabases

      <TResult> ListDatabasesIterable<TResult> listDatabases(ClientSession clientSession, Class<TResult> resultClass)
      Gets the list of databases
      Type Parameters:
      TResult - the type of the class to use instead of Document.
      Parameters:
      clientSession - the client session with which to associate this operation
      resultClass - the class to cast the database documents to
      Returns:
      the list databases iterable interface
      MongoDB documentation
      List Databases
      Since server release
      3.6
    • watch

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

      <TResult> ChangeStreamIterable<TResult> watch(Class<TResult> resultClass)
      Creates a change stream for this client.
      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:
      3.8
      MongoDB documentation
      Change Streams
      Since server release
      4.0
    • watch

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

      <TResult> ChangeStreamIterable<TResult> watch(List<? extends Bson> pipeline, Class<TResult> resultClass)
      Creates a change stream for this client.
      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:
      3.8
      MongoDB documentation
      Change Streams
      Since server release
      4.0
    • watch

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

      <TResult> ChangeStreamIterable<TResult> watch(ClientSession clientSession, Class<TResult> resultClass)
      Creates a change stream for this client.
      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:
      3.8
      MongoDB documentation
      Change Streams
      Since server release
      4.0
    • watch

      ChangeStreamIterable<Document> watch(ClientSession clientSession, List<? extends Bson> pipeline)
      Creates a change stream for this client.
      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:
      3.8
      MongoDB documentation
      Change Streams
      Since server release
      4.0
    • watch

      <TResult> ChangeStreamIterable<TResult> watch(ClientSession clientSession, List<? extends Bson> pipeline, Class<TResult> resultClass)
      Creates a change stream for this client.
      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:
      3.8
      MongoDB documentation
      Change Streams
      Since server release
      4.0
    • getClusterDescription

      ClusterDescription getClusterDescription()
      Gets the current cluster description.

      This method will not block, meaning that it may return a ClusterDescription whose clusterType is unknown and whose ServerDescriptions 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:
      3.11
      See Also: