MongoCollection

public struct MongoCollection<T> where T : Decodable, T : Encodable

A MongoDB collection.

  • The namespace for this collection.

    Declaration

    Swift

    public let namespace: MongoNamespace
  • Encoder used by this collection for BSON conversions. (e.g. converting CollectionTypes, indexes, and options to documents).

    Declaration

    Swift

    public let encoder: BSONEncoder
  • Decoder used by this collection for BSON conversions (e.g. converting documents to CollectionTypes).

    Declaration

    Swift

    public let decoder: BSONDecoder
  • A Codable type associated with this MongoCollection instance. This allows CollectionType values to be directly inserted into and retrieved from the collection, by encoding/decoding them using the BSONEncoder and BSONDecoder. The strategies to be used by the encoder and decoder for certain types can be configured by setting the coding strategies on the options used to create this collection instance. The default strategies are inherited from those set on the database this collection derived from.

    This type association only exists in the context of this particular MongoCollection instance. It is the responsibility of the user to ensure that any data already stored in the collection was encoded from this same type and according to the coding strategies set on this instance.

    Declaration

    Swift

    public typealias CollectionType = T
  • The name of this collection.

    Declaration

    Swift

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

    Declaration

    Swift

    public let readConcern: ReadConcern?
  • The ReadPreference set on this collection.

    Declaration

    Swift

    public let readPreference: ReadPreference
  • The WriteConcern set on this collection, or nil if one is not set.

    Declaration

    Swift

    public let writeConcern: WriteConcern?
  • Drops this collection from its parent database.

    Declaration

    Swift

    public func drop(options: DropCollectionOptions? = nil, session: ClientSession? = nil) -> EventLoopFuture<Void>

    Return Value

    An EventLoopFuture<Void> that succeeds when the drop is successful.

    If the future fails, the error is likely one of the following:

    • CommandError if an error occurs that prevents the command from executing.
    • LogicError if the provided session is inactive.
    • LogicError if this collection’s parent client has already been closed.
  • Execute multiple write operations.

    Declaration

    Swift

    public func bulkWrite(
        _ requests: [WriteModel<T>],
        options: BulkWriteOptions? = nil,
        session: ClientSession? = nil
    ) -> EventLoopFuture<BulkWriteResult?>

    Parameters

    requests

    a [WriteModel] containing the writes to perform.

    options

    optional BulkWriteOptions to use while executing the operation.

    session

    Optional ClientSession to use when executing this command

    Return Value

    An EventLoopFuture<BulkWriteResult?>. On success, the future contains either a BulkWriteResult, or contains nil if the write concern is unacknowledged.

    If the future fails, the error is likely one of the following:

  • Starts a ChangeStream on this collection. The CollectionType will be associated with the fullDocument field in ChangeStreamEvents emitted by the returned ChangeStream. The server will return an error if this method is called on a system collection.

    Declaration

    Swift

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

    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

    An EventLoopFuture<ChangeStream>. On success, contains a ChangeStream watching this collection.

    If the future fails, the error is likely one of the following:

  • Starts a ChangeStream on this collection. Associates the specified Codable type T with the fullDocument field in the ChangeStreamEvents emitted by the returned ChangeStream. The server will return an error if this method is called on a system collection.

    Declaration

    Swift

    public func watch<FullDocType: Codable>(
        _ pipeline: [Document] = [],
        options: ChangeStreamOptions? = nil,
        session: ClientSession? = nil,
        withFullDocumentType _: FullDocType.Type
    ) -> EventLoopFuture<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

    An EventLoopFuture<ChangeStream>. On success, contains a ChangeStream watching this collection.

    If the future fails, the error is likely one of the following:

  • Starts a ChangeStream on this collection. Associates the specified Codable type T with the returned ChangeStream. The server will return an error if this method is called on a system collection.

    Declaration

    Swift

    public func watch<EventType: Codable>(
        _ pipeline: [Document] = [],
        options: ChangeStreamOptions? = nil,
        session: ClientSession? = nil,
        withEventType _: EventType.Type
    ) -> EventLoopFuture<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 change stream.

    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

    An EventLoopFuture<ChangeStream>. On success, contains a ChangeStream watching this collection.

    If the future fails, the error is likely one of the following:

  • Finds a single document and deletes it, returning the original.

    Declaration

    Swift

    public func findOneAndDelete(
        _ filter: Document,
        options: FindOneAndDeleteOptions? = nil,
        session: ClientSession? = nil
    ) -> EventLoopFuture<CollectionType?>

    Parameters

    filter

    Document representing the match criteria

    options

    Optional FindOneAndDeleteOptions to use when executing the command

    session

    Optional ClientSession to use when executing this command

    Return Value

    An EventLoopFuture<CollectionType?>. On success, contains either the deleted document, represented as a CollectionType, or contains nil if no document was deleted.

    If the future fails, the error is likely one of the following:

    • InvalidArgumentError if any of the provided options are invalid.
    • LogicError if the provided session is inactive.
    • LogicError if this collection’s parent client has already been closed.
    • CommandError if an error occurs that prevents the command from executing.
    • WriteError if an error occurs while executing the command.
    • DecodingError if the deleted document cannot be decoded to a CollectionType value.
  • Finds a single document and replaces it, returning either the original or the replaced document.

    Declaration

    Swift

    public func findOneAndReplace(
        filter: Document,
        replacement: CollectionType,
        options: FindOneAndReplaceOptions? = nil,
        session: ClientSession? = nil
    ) -> EventLoopFuture<CollectionType?>

    Parameters

    filter

    Document representing the match criteria

    replacement

    a CollectionType to replace the found document

    options

    Optional FindOneAndReplaceOptions to use when executing the command

    session

    Optional ClientSession to use when executing this command

    Return Value

    An EventLoopFuture<CollectionType?>. On success, contains a CollectionType, representing either the original document or its replacement, depending on selected options; or containing nil if there was no matching document.

    If the future fails, the error is likely one of the following:

    • InvalidArgumentError if any of the provided options are invalid.
    • LogicError if the provided session is inactive.
    • LogicError if this collection’s parent client has already been closed.
    • CommandError if an error occurs that prevents the command from executing.
    • WriteError if an error occurs while executing the command.
    • DecodingError if the replaced document cannot be decoded to a CollectionType value.
    • EncodingError if replacement cannot be encoded to a Document.
  • Finds a single document and updates it, returning either the original or the updated document.

    Declaration

    Swift

    public func findOneAndUpdate(
        filter: Document,
        update: Document,
        options: FindOneAndUpdateOptions? = nil,
        session: ClientSession? = nil
    ) -> EventLoopFuture<CollectionType?>

    Parameters

    filter

    Document representing the match criteria

    update

    a Document containing updates to apply

    options

    Optional FindOneAndUpdateOptions to use when executing the command

    session

    Optional ClientSession to use when executing this command

    Return Value

    An EventLoopFuture<CollectionType>. On success, contains either the original or updated document, depending on selected options, or contains nil if there was no match.

    If the future fails, the error is likely one of the following:

    • InvalidArgumentError if any of the provided options are invalid.
    • LogicError if the provided session is inactive.
    • LogicError if this collection’s parent client has already been closed.
    • CommandError if an error occurs that prevents the command from executing.
    • WriteError if an error occurs while executing the command.
    • DecodingError if the updated document cannot be decoded to a CollectionType value.
  • Creates an index over the collection for the provided keys with the provided options.

    Declaration

    Swift

    public func createIndex(
        _ keys: Document,
        indexOptions: IndexOptions? = nil,
        options: CreateIndexOptions? = nil,
        session: ClientSession? = nil
    ) -> EventLoopFuture<String>

    Parameters

    keys

    a Document specifing the keys for the index

    indexOptions

    Optional IndexOptions to use for the index

    options

    Optional CreateIndexOptions to use for the command

    session

    Optional ClientSession to use when executing this command

    Return Value

    An EventLoopFuture<String>. On success, contains the name of the created index.

    If the future fails, the error is likely one of the following:

    • WriteError if an error occurs while performing the write.
    • 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.
    • LogicError if this collection’s parent client has already been closed.
    • EncodingError if an error occurs while encoding the index specification or options.
  • Creates an index over the collection for the provided keys with the provided options.

    Declaration

    Swift

    public func createIndex(
        _ model: IndexModel,
        options: CreateIndexOptions? = nil,
        session: ClientSession? = nil
    ) -> EventLoopFuture<String>

    Parameters

    model

    An IndexModel representing the keys and options for the index

    options

    Optional CreateIndexOptions to use for the command

    session

    Optional ClientSession to use when executing this command

    Return Value

    An EventLoopFuture<String>. On success, contains the name of the created index.

    If the future fails, the error is likely one of the following:

    • WriteError if an error occurs while performing the write.
    • 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.
    • LogicError if this collection’s parent client has already been closed.
    • EncodingError if an error occurs while encoding the index specification or options.
  • Creates multiple indexes in the collection.

    Declaration

    Swift

    public func createIndexes(
        _ models: [IndexModel],
        options: CreateIndexOptions? = nil,
        session: ClientSession? = nil
    ) -> EventLoopFuture<[String]>

    Parameters

    models

    An [IndexModel] specifying the indexes to create

    options

    Optional CreateIndexOptions to use for the command

    session

    Optional ClientSession to use when executing this command

    Return Value

    An EventLoopFuture<[String]>. On success, contains the names of the created indexes.

    If the future fails, the error is likely one of the following:

    • WriteError if an error occurs while performing the write.
    • CommandError if an error occurs that prevents the command from executing.
    • InvalidArgumentError if models is empty.
    • InvalidArgumentError if the options passed in form an invalid combination.
    • LogicError if the provided session is inactive.
    • LogicError if this collection’s parent client has already been closed.
    • EncodingError if an error occurs while encoding the index specifications or options.
  • Drops a single index from the collection by the index name.

    Declaration

    Swift

    public func dropIndex(
        _ name: String,
        options: DropIndexOptions? = nil,
        session: ClientSession? = nil
    ) -> EventLoopFuture<Void>

    Parameters

    name

    The name of the index to drop

    options

    Optional DropIndexOptions to use for the command

    session

    Optional ClientSession to use when executing this command

    Return Value

    An EventLoopFuture<Void> that succeeds when the drop is successful.

    If the future fails, the error is likely one of the following:

    • WriteError if an error occurs while performing the command.
    • LogicError if the provided session is inactive.
    • LogicError if this collection’s parent client has already been closed.
    • CommandError if an error occurs that prevents the command from executing.
    • InvalidArgumentError if the options passed in form an invalid combination.
    • EncodingError if an error occurs while encoding the options.
  • Attempts to drop a single index from the collection given the keys describing it.

    Declaration

    Swift

    public func dropIndex(
        _ keys: Document,
        options: DropIndexOptions? = nil,
        session: ClientSession? = nil
    ) -> EventLoopFuture<Void>

    Parameters

    keys

    a Document containing the keys for the index to drop

    options

    Optional DropIndexOptions to use for the command

    session

    Optional ClientSession to use when executing this command

    Return Value

    An EventLoopFuture<Void> that succeeds when the drop is successful.

    If the future fails, the error is likely one of the following:

    • WriteError if an error occurs while performing the command.
    • 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.
    • LogicError if this collection’s parent client has already been closed.
    • EncodingError if an error occurs while encoding the options.
  • Attempts to drop a single index from the collection given an IndexModel describing it.

    Declaration

    Swift

    public func dropIndex(
        _ model: IndexModel,
        options: DropIndexOptions? = nil,
        session: ClientSession? = nil
    ) -> EventLoopFuture<Void>

    Parameters

    model

    An IndexModel describing the index to drop

    options

    Optional DropIndexOptions to use for the command

    session

    Optional ClientSession to use when executing this command

    Return Value

    An EventLoopFuture<Void> that succeeds when the drop is successful.

    If the future fails, the error is likely one of the following:

    • WriteError if an error occurs while performing the command.
    • 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.
    • LogicError if this collection’s parent client has already been closed.
    • EncodingError if an error occurs while encoding the options.
  • Drops all indexes in the collection.

    Declaration

    Swift

    public func dropIndexes(
        options: DropIndexOptions? = nil,
        session: ClientSession? = nil
    ) -> EventLoopFuture<Void>

    Parameters

    options

    Optional DropIndexOptions to use for the command

    session

    Optional ClientSession to use when executing this command

    Return Value

    An EventLoopFuture<Void> that succeeds when the drop is successful.

    If the future fails, the error is likely one of the following:

    • WriteError if an error occurs while performing the command.
    • 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.
    • LogicError if this collection’s parent client has already been closed.
    • EncodingError if an error occurs while encoding the options.
  • Retrieves a list of the indexes currently on this collection.

    Declaration

    Swift

    public func listIndexes(session: ClientSession? = nil) -> EventLoopFuture<MongoCursor<IndexModel>>

    Parameters

    session

    Optional ClientSession to use when executing this command

    Return Value

    An EventLoopFuture<MongoCursor<IndexModel>>. On success, contains a cursor over the indexes.

    If the future fails, the error is likely one of the following:

    • LogicError if the provided session is inactive.
    • LogicError if this collection’s parent client has already been closed.
  • Retrieves a list of names of the indexes currently on this collection.

    Declaration

    Swift

    public func listIndexNames(session _: ClientSession? = nil) -> EventLoopFuture<[String]>

    Parameters

    session

    Optional ClientSession to use when executing this command

    Return Value

    An EventLoopFuture<[String]> containing the index names.

    If the future fails, the error is likely one of the following:

    • LogicError if the provided session is inactive.
    • LogicError if this collection’s parent client has already been closed.
  • Finds the documents in this collection which match the provided filter.

    Declaration

    Swift

    public func find(
        _ filter: Document = [:],
        options: FindOptions? = nil,
        session: ClientSession? = nil
    ) -> EventLoopFuture<MongoCursor<CollectionType>>

    Parameters

    filter

    A Document that should match the query

    options

    Optional FindOptions to use when executing the command

    session

    Optional ClientSession to use when executing this command

    Return Value

    An EventLoopFuture<MongoCursor<CollectionType>. On success, contains a cursor over the resulting documents.

    If the future fails, the error is likely one of the following:

    • InvalidArgumentError if the options passed are an invalid combination.
    • LogicError if the provided session is inactive.
    • LogicError if this collection’s parent client has already been closed.
    • EncodingError if an error occurs while encoding the options to BSON.
  • Finds a single document in this collection that matches the provided filter.

    Declaration

    Swift

    public func findOne(
        _ filter: Document = [:],
        options: FindOneOptions? = nil,
        session: ClientSession? = nil
    ) -> EventLoopFuture<T?>

    Parameters

    filter

    A Document that should match the query

    options

    Optional FindOneOptions to use when executing the command

    session

    Optional ClientSession to use when executing this command

    Return Value

    An EventLoopFuture<CollectionType?>. On success, contains the matching document, or nil if there was no match.

    If the future fails, the error is likely one of the following:

    • InvalidArgumentError if the options passed are an invalid combination.
    • LogicError if the provided session is inactive.
    • LogicError if this collection’s parent client has already been closed.
    • EncodingError if an error occurs while encoding the options to BSON.
  • Runs an aggregation framework pipeline against this collection.

    Declaration

    Swift

    public func aggregate(
        _ pipeline: [Document],
        options: AggregateOptions? = nil,
        session: ClientSession? = nil
    ) -> EventLoopFuture<MongoCursor<Document>>

    Parameters

    pipeline

    an [Document] containing the pipeline of aggregation operations to perform

    options

    Optional AggregateOptions to use when executing the command

    session

    Optional ClientSession to use when executing this command

    Return Value

    An EventLoopFuture<MongoCursor<CollectionType>. On success, contains a cursor over the resulting documents.

    If the future fails, the error is likely one of the following:

    • InvalidArgumentError if the options passed are an invalid combination.
    • LogicError if the provided session is inactive.
    • LogicError if this collection’s parent client has already been closed.
    • EncodingError if an error occurs while encoding the options to BSON.
  • Counts the number of documents in this collection matching the provided filter. Note that an empty filter will force a scan of the entire collection. For a fast count of the total documents in a collection see estimatedDocumentCount.

    Declaration

    Swift

    public func countDocuments(
        _ filter: Document = [:],
        options: CountDocumentsOptions? = nil,
        session: ClientSession? = nil
    ) -> EventLoopFuture<Int>

    Parameters

    filter

    a Document, the filter that documents must match in order to be counted

    options

    Optional CountDocumentsOptions to use when executing the command

    session

    Optional ClientSession to use when executing this command

    Return Value

    An EventLoopFuture<Int>. On success, contains the count of the documents that matched the filter.

    If the future fails, the error is likely one of the following:

    • 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.
    • LogicError if this collection’s parent client has already been closed.
    • EncodingError if an error occurs while encoding the options to BSON.
  • Gets an estimate of the count of documents in this collection using collection metadata.

    Declaration

    Swift

    public func estimatedDocumentCount(
        options: EstimatedDocumentCountOptions? = nil,
        session: ClientSession? = nil
    ) -> EventLoopFuture<Int>

    Parameters

    options

    Optional EstimatedDocumentCountOptions to use when executing the command

    session

    Optional ClientSession to use when executing this command

    Return Value

    An EventLoopFuture<Int>. On success, contains an estimate of the count of documents in this collection.

    If the future fails, the error is likely one of the following:

    • 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.
    • LogicError if this collection’s parent client has already been closed.
    • EncodingError if an error occurs while encoding the options to BSON.
  • Finds the distinct values for a specified field across the collection.

    Declaration

    Swift

    public func distinct(
        fieldName: String,
        filter: Document = [:],
        options: DistinctOptions? = nil,
        session: ClientSession? = nil
    ) -> EventLoopFuture<[BSON]>

    Parameters

    fieldName

    The field for which the distinct values will be found

    filter

    a Document representing the filter documents must match in order to be considered for the operation

    options

    Optional DistinctOptions to use when executing the command

    session

    Optional ClientSession to use when executing this command

    Return Value

    An EventLoopFuture<[BSON]>. On success, contains the distinct values for the specified criteria.

    If the future fails, the error is likely one of the following:

    • 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.
    • LogicError if this collection’s parent client has already been closed.
    • EncodingError if an error occurs while encoding the options to BSON.
  • Encodes the provided value to BSON and inserts it. If the value is missing an identifier, one will be generated for it.

    Declaration

    Swift

    public func insertOne(
        _ value: CollectionType,
        options: InsertOneOptions? = nil,
        session: ClientSession? = nil
    ) -> EventLoopFuture<InsertOneResult?>

    Parameters

    value

    A CollectionType value to encode and insert

    options

    Optional InsertOneOptions to use when executing the command

    session

    Optional ClientSession to use when executing this command

    Return Value

    An EventLoopFuture<InsertOneResult?>. On success, contains the result of performing the insert, or contains nil if the write concern is unacknowledged.

    If the future fails, the error is likely one of the following:

    • WriteError if an error occurs while performing the command.
    • 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.
    • LogicError if this collection’s parent client has already been closed.
    • EncodingError if an error occurs while encoding the CollectionType to BSON.
  • Encodes the provided values to BSON and inserts them. If any values are missing identifiers, the driver will generate them.

    Declaration

    Swift

    public func insertMany(
        _ values: [CollectionType],
        options: InsertManyOptions? = nil,
        session: ClientSession? = nil
    ) -> EventLoopFuture<InsertManyResult?>

    Parameters

    values

    The CollectionType values to insert

    options

    optional InsertManyOptions to use while executing the operation

    session

    Optional ClientSession to use when executing this command

    Return Value

    An EventLoopFuture<InsertManyResult?>. On success, contains the result of performing the inserts, or contains nil if the write concern is unacknowledged.

    If the future fails, the error is likely one of the following:

    • BulkWriteError if an error occurs while performing any of the writes.
    • 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.
    • LogicError if this collection’s parent client has already been closed.
    • EncodingError if an error occurs while encoding the CollectionType or options to BSON.
  • Replaces a single document matching the provided filter in this collection.

    Declaration

    Swift

    public func replaceOne(
        filter: Document,
        replacement: CollectionType,
        options: ReplaceOptions? = nil,
        session: ClientSession? = nil
    ) -> EventLoopFuture<UpdateResult?>

    Parameters

    filter

    A Document representing the match criteria

    replacement

    The replacement value, a CollectionType value to be encoded and inserted

    options

    Optional ReplaceOptions to use when executing the command

    session

    Optional ClientSession to use when executing this command

    Return Value

    An EventLoopFuture<UpdateResult?>. On success, contains the result of performing the replacement, or contains nil if the write concern is unacknowledged.

    If the future fails, the error is likely one of the following:

    • WriteError if an error occurs while performing the command.
    • 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.
    • LogicError if this collection’s parent client has already been closed.
    • EncodingError if an error occurs while encoding the CollectionType or options to BSON.
  • Updates a single document matching the provided filter in this collection.

    Declaration

    Swift

    public func updateOne(
        filter: Document,
        update: Document,
        options: UpdateOptions? = nil,
        session: ClientSession? = nil
    ) -> EventLoopFuture<UpdateResult?>

    Parameters

    filter

    A Document representing the match criteria

    update

    A Document representing the update to be applied to a matching document

    options

    Optional UpdateOptions to use when executing the command

    session

    Optional ClientSession to use when executing this command

    Return Value

    An EventLoopFuture<UpdateResult?>. On success, contains the result of performing the update, or contains nil if the write concern is unacknowledged.

    If the future fails, the error is likely one of the following:

    • WriteError if an error occurs while performing the command.
    • 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.
    • LogicError if this collection’s parent client has already been closed.
    • EncodingError if an error occurs while encoding the options to BSON.
  • Updates multiple documents matching the provided filter in this collection.

    Declaration

    Swift

    public func updateMany(
        filter: Document,
        update: Document,
        options: UpdateOptions? = nil,
        session: ClientSession? = nil
    ) -> EventLoopFuture<UpdateResult?>

    Parameters

    filter

    A Document representing the match criteria

    update

    A Document representing the update to be applied to matching documents

    options

    Optional UpdateOptions to use when executing the command

    session

    Optional ClientSession to use when executing this command

    Return Value

    An EventLoopFuture<UpdateResult?>. On success, contains the result of performing the update, or contains nil if the write concern is unacknowledged.

    If the future fails, the error is likely one of the following:

    • WriteError if an error occurs while performing the command.
    • 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.
    • LogicError if this collection’s parent client has already been closed.
    • EncodingError if an error occurs while encoding the options to BSON.
  • Deletes a single matching document from the collection.

    Declaration

    Swift

    public func deleteOne(
        _ filter: Document,
        options: DeleteOptions? = nil,
        session: ClientSession? = nil
    ) -> EventLoopFuture<DeleteResult?>

    Parameters

    filter

    A Document representing the match criteria

    options

    Optional DeleteOptions to use when executing the command

    session

    Optional ClientSession to use when executing this command

    Return Value

    An EventLoopFuture<DeleteResult?>. On success, contains the result of performing the deletion, or contains nil if the write concern is unacknowledged.

    If the future fails, the error is likely one of the following:

    • WriteError if an error occurs while performing the command.
    • 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.
    • LogicError if this collection’s parent client has already been closed.
    • EncodingError if an error occurs while encoding the options to BSON.
  • Deletes all matching documents from the collection.

    Declaration

    Swift

    public func deleteMany(
        _ filter: Document,
        options: DeleteOptions? = nil,
        session: ClientSession? = nil
    ) -> EventLoopFuture<DeleteResult?>

    Parameters

    filter

    Document representing the match criteria

    options

    Optional DeleteOptions to use when executing the command

    session

    Optional ClientSession to use when executing this command

    Return Value

    An EventLoopFuture<DeleteResult?>. On success, contains the result of performing the deletions, or contains nil if the write concern is unacknowledged.

    If the future fails, the error is likely one of the following:

    • WriteError if an error occurs while performing the command.
    • 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.
    • LogicError if this collection’s parent client has already been closed.
    • EncodingError if an error occurs while encoding the options to BSON.