Interface MongoClient

  • All Superinterfaces:
    java.lang.AutoCloseable, java.io.Closeable

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

    Instance of this class server as factories for MongoDatabase instances.

    Since:
    1.0
    • Method Detail

      • getDatabase

        MongoDatabase getDatabase​(java.lang.String name)
        Gets the database with the given name.
        Parameters:
        name - the name of the database
        Returns:
        the database
      • 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 java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
      • listDatabaseNames

        org.reactivestreams.Publisher<java.lang.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

        org.reactivestreams.Publisher<java.lang.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
        Since:
        1.7
        MongoDB documentation
        List Databases
        Since server release
        3.6
      • listDatabases

        ListDatabasesPublisher<org.bson.Document> listDatabases()
        Gets the list of databases
        Returns:
        the fluent list databases interface
      • listDatabases

        <TResult> ListDatabasesPublisher<TResult> listDatabases​(java.lang.Class<TResult> clazz)
        Gets the list of databases
        Type Parameters:
        TResult - the type of the class to use instead of Document.
        Parameters:
        clazz - the class to cast the database documents to
        Returns:
        the fluent list databases interface
      • listDatabases

        ListDatabasesPublisher<org.bson.Document> listDatabases​(ClientSession clientSession)
        Gets the list of databases
        Parameters:
        clientSession - the client session with which to associate this operation
        Returns:
        the fluent list databases interface
        Since:
        1.7
        Since server release
        3.6
      • listDatabases

        <TResult> ListDatabasesPublisher<TResult> listDatabases​(ClientSession clientSession,
                                                                java.lang.Class<TResult> clazz)
        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
        clazz - the class to cast the database documents to
        Returns:
        the fluent list databases interface
        Since:
        1.7
        Since server release
        3.6
      • watch

        ChangeStreamPublisher<org.bson.Document> watch()
        Creates a change stream for this client.
        Returns:
        the change stream iterable
        Since:
        1.9
        MongoDB documentation
        Change Streams
        Since server release
        4.0
      • watch

        <TResult> ChangeStreamPublisher<TResult> watch​(java.lang.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:
        1.9
        MongoDB documentation
        Change Streams
        Since server release
        4.0
      • watch

        ChangeStreamPublisher<org.bson.Document> watch​(java.util.List<? extends org.bson.conversions.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:
        1.9
        MongoDB documentation
        Change Streams
        Since server release
        4.0
      • watch

        <TResult> ChangeStreamPublisher<TResult> watch​(java.util.List<? extends org.bson.conversions.Bson> pipeline,
                                                       java.lang.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:
        1.9
        MongoDB documentation
        Change Streams
        Since server release
        4.0
      • watch

        ChangeStreamPublisher<org.bson.Document> watch​(ClientSession clientSession)
        Creates a change stream for this client.
        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,
                                                       java.lang.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:
        1.9
        MongoDB documentation
        Change Streams
        Since server release
        4.0
      • watch

        ChangeStreamPublisher<org.bson.Document> watch​(ClientSession clientSession,
                                                       java.util.List<? extends org.bson.conversions.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:
        1.9
        MongoDB documentation
        Change Streams
        Since server release
        4.0
      • watch

        <TResult> ChangeStreamPublisher<TResult> watch​(ClientSession clientSession,
                                                       java.util.List<? extends org.bson.conversions.Bson> pipeline,
                                                       java.lang.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:
        1.9
        MongoDB documentation
        Change Streams
        Since server release
        4.0
      • startSession

        org.reactivestreams.Publisher<ClientSession> startSession()
        Creates a client session.
        Returns:
        a publisher for the client session.
        Since:
        1.9
        Since server release
        3.6
      • startSession

        org.reactivestreams.Publisher<ClientSession> startSession​(com.mongodb.ClientSessionOptions options)
        Creates a client session.
        Parameters:
        options - the options for the client session
        Returns:
        a publisher for the client session.
        Since:
        1.7
        Since server release
        3.6
      • getClusterDescription

        com.mongodb.connection.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:
        4.1
        See Also:
        ClusterSettings.Builder.addClusterListener(ClusterListener), MongoClientSettings.Builder.applyToClusterSettings(com.mongodb.Block)