MongoDatabase

public struct MongoDatabase

A MongoDB Database.

  • Encoder used by this database for BSON conversions. This encoder’s options are inherited by collections derived from this database.

    Declaration

    Swift

    public var encoder: BSONEncoder { get }
  • Decoder whose options are inherited by collections derived from this database.

    Declaration

    Swift

    public var decoder: BSONDecoder { get }
  • The name of this database.

    Declaration

    Swift

    public var name: String { get }
  • The ReadConcern set on this database, or nil if one is not set.

    Declaration

    Swift

    public var readConcern: ReadConcern? { get }
  • The ReadPreference set on this database

    Declaration

    Swift

    public var readPreference: ReadPreference { get }
  • The WriteConcern set on this database, or nil if one is not set.

    Declaration

    Swift

    public var writeConcern: WriteConcern? { get }
  • Drops this database.

    Throws

    Throws:

    • CommandError if an error occurs that prevents the command from executing.

    Declaration

    Swift

    public func drop(options: DropDatabaseOptions? = nil, session: ClientSession? = nil) throws
  • Access a collection within this database. If an option is not specified in the CollectionOptions param, the collection will inherit the value from the parent database or the default if the db’s option is not set. To override an option inherited from the db (e.g. a read concern) with the default value, it must be explicitly specified in the options param (e.g. ReadConcern(), not nil).

    Declaration

    Swift

    public func collection(_ name: String, options: CollectionOptions? = nil) -> MongoCollection<Document>

    Parameters

    name

    the name of the collection to get

    options

    options to set on the returned collection

    Return Value

    the requested MongoCollection<Document>

  • Access a collection within this database, and associates the specified Codable type T with the returned MongoCollection. This association only exists in the context of this particular MongoCollection instance. If an option is not specified in the CollectionOptions param, the collection will inherit the value from the parent database or the default if the db’s option is not set. To override an option inherited from the db (e.g. a read concern) with the default value, it must be explicitly specified in the options param (e.g. ReadConcern(), not nil).

    Declaration

    Swift

    public func collection<T: Codable>(
        _ name: String,
        withType _: T.Type,
        options: CollectionOptions? = nil
    ) -> MongoCollection<T>

    Parameters

    name

    the name of the collection to get

    options

    options to set on the returned collection

    Return Value

    the requested MongoCollection<T>

  • Creates a collection in this database with the specified options.

    Throws

    Throws:

    • CommandError if an error occurs that prevents the command from executing.
    • InvalidArgumentError if the options passed in form an invalid combination.
    • LogicError if the provided session is inactive.
    • EncodingError if an error occurs while encoding the options to BSON.

    Declaration

    Swift

    public func createCollection(
        _ name: String,
        options: CreateCollectionOptions? = nil,
        session: ClientSession? = nil
    ) throws -> MongoCollection<Document>

    Parameters

    name

    a String, the name of the collection to create

    options

    Optional CreateCollectionOptions to use for the collection

    session

    Optional ClientSession to use when executing this command

    Return Value

    the newly created MongoCollection<Document>

  • Creates a collection in this database with the specified options, and associates the specified Codable type T with the returned MongoCollection. This association only exists in the context of this particular MongoCollection instance.

    Throws

    Throws:

    • CommandError if an error occurs that prevents the command from executing.
    • InvalidArgumentError if the options passed in form an invalid combination.
    • LogicError if the provided session is inactive.
    • EncodingError if an error occurs while encoding the options to BSON.

    Declaration

    Swift

    public func createCollection<T: Codable>(
        _ name: String,
        withType type: T.Type,
        options: CreateCollectionOptions? = nil,
        session: ClientSession? = nil
    ) throws -> MongoCollection<T>

    Parameters

    name

    a String, the name of the collection to create

    options

    Optional CreateCollectionOptions to use for the collection

    session

    Optional ClientSession to use when executing this command

    Return Value

    the newly created MongoCollection<T>

  • Lists all the collections in this database.

    Throws

    Throws:

    • InvalidArgumentError if the options passed are an invalid combination.
    • LogicError if the provided session is inactive.

    Declaration

    Swift

    public func listCollections(
        _ filter: Document? = nil,
        options: ListCollectionsOptions? = nil,
        session: ClientSession? = nil
    ) throws -> MongoCursor<CollectionSpecification>

    Parameters

    filter

    a Document, optional criteria to filter results by

    options

    Optional ListCollectionsOptions to use when executing this command

    session

    Optional ClientSession to use when executing this command

    Return Value

    a MongoCursor over an array of CollectionSpecifications

  • Gets a list of MongoCollections in this database.

    Throws

    Throws:

    • InvalidArgumentError if the options passed are an invalid combination.
    • LogicError if the provided session is inactive.

    Declaration

    Swift

    public func listMongoCollections(
        _ filter: Document? = nil,
        options: ListCollectionsOptions? = nil,
        session: ClientSession? = nil
    ) throws -> [MongoCollection<Document>]

    Parameters

    filter

    a Document, optional criteria to filter results by

    options

    Optional ListCollectionsOptions to use when executing this command

    session

    Optional ClientSession to use when executing this command

    Return Value

    An array of MongoCollections that match the provided filter.

  • Gets a list of names of collections in this database.

    Throws

    Throws:

    • InvalidArgumentError if the options passed are an invalid combination.
    • LogicError if the provided session is inactive.

    Declaration

    Swift

    public func listCollectionNames(
        _ filter: Document? = nil,
        options: ListCollectionsOptions? = nil,
        session: ClientSession? = nil
    ) throws -> [String]

    Parameters

    filter

    a Document, optional criteria to filter results by

    options

    Optional ListCollectionsOptions to use when executing this command

    session

    Optional ClientSession to use when executing this command

    Return Value

    A [String] containing names of collections that match the provided filter.

  • Issues a MongoDB command against this database.

    Throws

    Throws:

    • InvalidArgumentError if requests is empty.
    • LogicError if the provided session is inactive.
    • WriteError if any error occurs while the command was performing a write.
    • CommandError if an error occurs that prevents the command from being performed.
    • EncodingError if an error occurs while encoding the options to BSON.

    Declaration

    Swift

    @discardableResult
    public func runCommand(
        _ command: Document,
        options: RunCommandOptions? = nil,
        session: ClientSession? = nil
    ) throws -> Document

    Parameters

    command

    a Document containing the command to issue against the database

    options

    Optional RunCommandOptions to use when executing this command

    session

    Optional ClientSession to use when executing this command

    Return Value

    a Document containing the server response for the command

  • Starts a ChangeStream on a database. Excludes system collections.

    Throws

    Throws:

    • CommandError if an error occurs on the server while creating the change stream.
    • InvalidArgumentError if the options passed formed an invalid combination.
    • InvalidArgumentError if the _id field is projected out of the change stream documents by the pipeline.

    Note

    Supported in MongoDB version 4.0+ only.

    Declaration

    Swift

    public func watch(
        _ pipeline: [Document] = [],
        options: ChangeStreamOptions? = nil,
        session: ClientSession? = nil
    ) throws -> ChangeStream<ChangeStreamEvent<Document>>

    Parameters

    pipeline

    An array of aggregation pipeline stages to apply to the events returned by the change stream.

    options

    An optional ChangeStreamOptions to use when constructing the change stream.

    session

    An optional ClientSession to use with this change stream.

    Return Value

    A ChangeStream on all collections in a database.

  • Starts a ChangeStream on a database. Excludes system collections. Associates the specified Codable type T with the fullDocument field in the ChangeStreamEvents emitted by the returned ChangeStream.

    Throws

    Throws:

    • CommandError if an error occurs on the server while creating the change stream.
    • InvalidArgumentError if the options passed formed an invalid combination.
    • InvalidArgumentError if the _id field is projected out of the change stream documents by the pipeline.

    Note

    Supported in MongoDB version 4.0+ only.

    Declaration

    Swift

    public func watch<FullDocType: Codable>(
        _ pipeline: [Document] = [],
        options: ChangeStreamOptions? = nil,
        session: ClientSession? = nil,
        withFullDocumentType _: FullDocType.Type
    ) throws -> ChangeStream<ChangeStreamEvent<FullDocType>>

    Parameters

    pipeline

    An array of aggregation pipeline stages to apply to the events returned by the change stream.

    options

    An optional ChangeStreamOptions to use when constructing the change stream.

    session

    An optional ClientSession to use with this change stream.

    withFullDocumentType

    The type that the fullDocument field of the emitted ChangeStreamEvents will be decoded to.

    Return Value

    A ChangeStream on all collections in a database.

  • Starts a ChangeStream on a database. Excludes system collections. Associates the specified Codable type T with the returned ChangeStream.

    Throws

    Throws:

    • CommandError if an error occurs on the server while creating the change stream.
    • InvalidArgumentError if the options passed formed an invalid combination.
    • InvalidArgumentError if the _id field is projected out of the change stream documents by the pipeline.

    Note

    Supported in MongoDB version 4.0+ only.

    Declaration

    Swift

    public func watch<EventType: Codable>(
        _ pipeline: [Document] = [],
        options: ChangeStreamOptions? = nil,
        session: ClientSession? = nil,
        withEventType _: EventType.Type
    ) throws -> ChangeStream<EventType>

    Parameters

    pipeline

    An array of aggregation pipeline stages to apply to the events returned by the change stream.

    options

    An optional ChangeStreamOptions to use when constructing the ChangeStream.

    session

    An optional ClientSession to use with this change stream.

    withEventType

    The type that the entire change stream response will be decoded to and that will be returned when iterating through the change stream.

    Return Value

    A ChangeStream on all collections in a database.