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 Detail

      • getName

        String getName()
        Gets the name of the database.
        Returns:
        the database name
      • 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
      • withCodecRegistry

        MongoDatabase withCodecRegistry​(CodecRegistry codecRegistry)
        Create a new MongoDatabase instance with a different codec registry.
        Parameters:
        codecRegistry - the new CodecRegistry for the collection
        Returns:
        a new MongoDatabase instance with the different codec registry
      • 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
      • 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

        org.reactivestreams.Publisher<Document> runCommand​(Bson command)
        Executes command in the context of the current database.
        Parameters:
        command - the command to be run
        Returns:
        a publisher containing the command result
      • runCommand

        org.reactivestreams.Publisher<Document> runCommand​(Bson command,
                                                           ReadPreference readPreference)
        Executes command in the context of the current database.
        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> org.reactivestreams.Publisher<TResult> runCommand​(Bson command,
                                                                    Class<TResult> clazz)
        Executes command in the context of the current database.
        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> org.reactivestreams.Publisher<TResult> runCommand​(Bson command,
                                                                    ReadPreference readPreference,
                                                                    Class<TResult> clazz)
        Executes command in the context of the current database.
        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

        org.reactivestreams.Publisher<Document> runCommand​(ClientSession clientSession,
                                                           Bson command)
        Executes command in the context of the current database.
        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

        org.reactivestreams.Publisher<Document> runCommand​(ClientSession clientSession,
                                                           Bson command,
                                                           ReadPreference readPreference)
        Executes command in the context of the current database.
        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> org.reactivestreams.Publisher<TResult> runCommand​(ClientSession clientSession,
                                                                    Bson command,
                                                                    Class<TResult> clazz)
        Executes command in the context of the current database.
        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> org.reactivestreams.Publisher<TResult> runCommand​(ClientSession clientSession,
                                                                    Bson command,
                                                                    ReadPreference readPreference,
                                                                    Class<TResult> clazz)
        Executes command in the context of the current database.
        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

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

        org.reactivestreams.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

        org.reactivestreams.Publisher<String> 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
      • listCollectionNames

        org.reactivestreams.Publisher<String> 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
        Since server release
        3.6
      • 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

        org.reactivestreams.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

        org.reactivestreams.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

        org.reactivestreams.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

        org.reactivestreams.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

        org.reactivestreams.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

        org.reactivestreams.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

        org.reactivestreams.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

        org.reactivestreams.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

        <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

        ChangeStreamPublisher<Document> watch​(ClientSession clientSession)
        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