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 -
The
EventLoopthisMongoCollectionis bound to.Declaration
Swift
public let eventLoop: EventLoop? -
A
Codabletype associated with thisMongoCollectioninstance. This allowsCollectionTypevalues to be directly inserted into and retrieved from the collection, by encoding/decoding them using theBSONEncoderandBSONDecoder. 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
MongoCollectioninstance. 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
ReadConcernset on this collection, ornilif one is not set.Declaration
Swift
public let readConcern: ReadConcern? -
The
ReadPreferenceset on this collection.Declaration
Swift
public let readPreference: ReadPreference -
The
WriteConcernset 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:
MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.LogicErrorif the provided session is inactive.MongoError.LogicErrorif this collection’s parent client has already been closed.
-
Renames this collection on the server. This method will return a handle to the renamed collection. The handle which this method is invoked on will continue to refer to the old collection, which will then be empty. The server will throw an error if the new name matches an existing collection unless the
dropTargetoption is set to true.Note: This method is not supported on sharded collections.
Declaration
Swift
public func renamed( to newName: String, options: RenameCollectionOptions? = nil, session: ClientSession? = nil ) -> EventLoopFuture<MongoCollection>Parameters
toA
String, the new name for the collectionoptionsOptional
RenameCollectionOptionsto use for the collectionsessionOptional
ClientSessionto use when executing this commandReturn Value
An
EventLoopFuture<MongoCollection>evaluating to a copy of the targetMongoCollectionwith the new name.If the future evaluates to an error, it is likely one of the following:
MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif the provided session is inactive.MongoError.LogicErrorif this collection’s parent client has already been closed.EncodingErrorif an error occurs while encoding the options to BSON.
-
Drops this collection from its parent database.
Declaration
Swift
public func drop(options: DropCollectionOptions? = nil, session: ClientSession? = nil) async throwsParameters
optionsAn optional
DropCollectionOptionsto use when executing this command.sessionAn optional
ClientSessionto use when executing this command. -
Renames this collection on the server. This method will return a handle to the renamed collection. The handle which this method is invoked on will continue to refer to the old collection, which will then be empty. The server will throw an error if the new name matches an existing collection unless the
dropTargetoption is set to true.Note: This method is not supported on sharded collections.
Declaration
Swift
public func renamed( to newName: String, options: RenameCollectionOptions? = nil, session: ClientSession? = nil ) async throws -> MongoCollectionParameters
toA
String, the new name for the collection.optionsOptional
RenameCollectionOptionsto use for the collection.sessionOptional
ClientSessionto use when executing this command.Return Value
A copy of the target
MongoCollectionwith the new name.Throws:
MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif the provided session is inactive.MongoError.LogicErrorif this collection’s parent client has already been closed.EncodingErrorif an error occurs while encoding the options to BSON.
-
Starts a
ChangeStreamon a collection. TheCollectionTypewill be associated with thefullDocumentfield inChangeStreamEvents emitted by the returnedChangeStream. The server will return an error if this method is called on a system collection.Throws
Throws:
MongoError.CommandErrorif an error occurs on the server while creating the change stream.MongoError.InvalidArgumentErrorif the options passed formed an invalid combination.MongoError.InvalidArgumentErrorif the_idfield is projected out of the change stream documents by the pipeline.
Declaration
Swift
public func watch( _ pipeline: [BSONDocument] = [], options: ChangeStreamOptions? = nil, session: ClientSession? = nil ) async throws -> ChangeStream<ChangeStreamEvent<CollectionType>>Parameters
pipelineAn array of aggregation pipeline stages to apply to the events returned by the change stream.
optionsAn optional
ChangeStreamOptionsto use when constructing the change stream.sessionAn optional
ClientSessionto use with this change stream.Return Value
A
ChangeStreamon a specific collection. -
Starts a
ChangeStreamon a collection. Associates the specifiedCodabletypeTwith thefullDocumentfield in theChangeStreamEvents emitted by the returnedChangeStream. The server will return an error if this method is called on a system collection.Throws
Throws:
MongoError.CommandErrorif an error occurs on the server while creating the change stream.MongoError.InvalidArgumentErrorif the options passed formed an invalid combination.MongoError.InvalidArgumentErrorif the_idfield is projected out of the change stream documents by the pipeline.
Declaration
Swift
public func watch<FullDocType: Codable>( _ pipeline: [BSONDocument] = [], options: ChangeStreamOptions? = nil, session: ClientSession? = nil, withFullDocumentType _: FullDocType.Type ) async throws -> ChangeStream<ChangeStreamEvent<FullDocType>>Parameters
pipelineAn array of aggregation pipeline stages to apply to the events returned by the change stream.
optionsAn optional
ChangeStreamOptionsto use when constructing the change stream.sessionAn optional
ClientSessionto use with this change stream.withFullDocumentTypeThe type that the
fullDocumentfield of the emittedChangeStreamEvents will be decoded to.Return Value
A
ChangeStreamon a specific collection. -
Starts a
ChangeStreamon a collection. Associates the specifiedCodabletypeTwith the returnedChangeStream. The server will return an error if this method is called on a system collection.Throws
Throws:
MongoError.CommandErrorif an error occurs on the server while creating the change stream.MongoError.InvalidArgumentErrorif the options passed formed an invalid combination.MongoError.InvalidArgumentErrorif the_idfield is projected out of the change stream documents by the pipeline.
Declaration
Swift
public func watch<EventType: Codable>( _ pipeline: [BSONDocument] = [], options: ChangeStreamOptions? = nil, session: ClientSession? = nil, withEventType _: EventType.Type ) async throws -> ChangeStream<EventType>Parameters
pipelineAn array of aggregation pipeline stages to apply to the events returned by the change stream.
optionsAn optional
ChangeStreamOptionsto use when constructing the change stream.sessionAn optional
ClientSessionto use with this change stream.withEventTypeThe 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
ChangeStreamon a specific collection. -
Finds a single document and deletes it, returning the original.
Throws
Throws:
MongoError.InvalidArgumentErrorif any of the provided options are invalid.MongoError.LogicErrorif the provided session is inactive.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.WriteErrorif an error occurs while executing the command.DecodingErrorif the deleted document cannot be decoded to aCollectionTypevalue.
Declaration
Swift
@discardableResult public func findOneAndDelete( _ filter: BSONDocument, options: FindOneAndDeleteOptions? = nil, session: ClientSession? = nil ) async throws -> CollectionType?Parameters
filtera
BSONDocumentrepresenting the match criteria.optionsOptional
FindOneAndDeleteOptionsto use when executing the command.sessionOptional
ClientSessionto use when executing this command.Return Value
The deleted document, represented as a
CollectionType, ornilif no document was deleted. -
Finds a single document and replaces it, returning either the original or the replaced document.
Throws
Throws:
MongoError.InvalidArgumentErrorif any of the provided options are invalid.MongoError.LogicErrorif the provided session is inactive.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.WriteErrorif an error occurs while executing the command.DecodingErrorif the replaced document cannot be decoded to aCollectionTypevalue.EncodingErrorifreplacementcannot be encoded to aBSONDocument.
Declaration
Swift
@discardableResult public func findOneAndReplace( filter: BSONDocument, replacement: CollectionType, options: FindOneAndReplaceOptions? = nil, session: ClientSession? = nil ) async throws -> CollectionType?Parameters
filtera
BSONDocumentrepresenting the match criteria.replacementa
CollectionTypeto replace the found document.optionsOptional
FindOneAndReplaceOptionsto use when executing the command.sessionOptional
ClientSessionto use when executing this command.Return Value
A
CollectionType, representing either the original document or its replacement, depending on selected options, ornilif there was no match. -
Finds a single document and updates it, returning either the original or the updated document.
Throws
Throws:
MongoError.InvalidArgumentErrorif any of the provided options are invalid.MongoError.LogicErrorif the provided session is inactive.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.WriteErrorif an error occurs while executing the command.DecodingErrorif the updated document cannot be decoded to aCollectionTypevalue.
Declaration
Swift
@discardableResult public func findOneAndUpdate( filter: BSONDocument, update: BSONDocument, options: FindOneAndUpdateOptions? = nil, session: ClientSession? = nil ) async throws -> CollectionType?Parameters
filtera
BSONDocumentrepresenting the match criteria.updatea
BSONDocumentcontaining updates to apply.optionsOptional
FindOneAndUpdateOptionsto use when executing the command.sessionOptional
ClientSessionto use when executing this command.Return Value
A
CollectionTyperepresenting either the original or updated document, depending on selected options, ornilif there was no match. -
Finds a single document and updates it, returning either the original or the updated document.
Throws
Throws:
MongoError.InvalidArgumentErrorif any of the provided options are invalid.MongoError.LogicErrorif the provided session is inactive.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.WriteErrorif an error occurs while executing the command.DecodingErrorif the updated document cannot be decoded to aCollectionTypevalue.
Declaration
Swift
@discardableResult public func findOneAndUpdate( filter: BSONDocument, pipeline: [BSONDocument], options: FindOneAndUpdateOptions? = nil, session: ClientSession? = nil ) async throws -> CollectionType?Parameters
filtera
BSONDocumentrepresenting the match criteria.pipelinean array of
BSONDocumentcontaining the aggregation pipeline to apply.optionsOptional
FindOneAndUpdateOptionsto use when executing the command.sessionOptional
ClientSessionto use when executing this command.Return Value
A
CollectionTyperepresenting either the original or updated document, depending on selected options, ornilif there was no match. -
Creates an index over the collection for the provided keys with the provided options.
Throws
Throws:
MongoError.WriteErrorif an error occurs while performing the write.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif the provided session is inactive.EncodingErrorif an error occurs while encoding the index specification or options.
Declaration
Swift
@discardableResult public func createIndex( _ keys: BSONDocument, indexOptions: IndexOptions? = nil, options: CreateIndexOptions? = nil, session: ClientSession? = nil ) async throws -> StringParameters
keysa
BSONDocumentspecifing the keys for the index.indexOptionsOptional
IndexOptionsto use for the index.optionsOptional
CreateIndexOptionsto use for the command.sessionOptional
ClientSessionto use when executing this command.Return Value
The name of the created index.
-
Creates an index over the collection for the provided keys with the provided options.
Throws
Throws:
MongoError.WriteErrorif an error occurs while performing the write.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif the provided session is inactive.EncodingErrorif an error occurs while encoding the index specification or options.
Declaration
Swift
@discardableResult public func createIndex( _ model: IndexModel, options: CreateIndexOptions? = nil, session: ClientSession? = nil ) async throws -> StringParameters
modelAn
IndexModelrepresenting the keys and options for the index.optionsOptional
CreateIndexOptionsto use for the command.sessionOptional
ClientSessionto use when executing this command.Return Value
The name of the created index.
-
Creates multiple indexes in the collection.
Throws
Throws:
MongoError.WriteErrorif an error occurs while performing the write.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif the provided session is inactive.EncodingErrorif an error occurs while encoding the index specifications or options.
Declaration
Swift
@discardableResult public func createIndexes( _ models: [IndexModel], options: CreateIndexOptions? = nil, session: ClientSession? = nil ) async throws -> [String]Parameters
modelsAn
[IndexModel]specifying the indexes to create.optionsOptional
CreateIndexOptionsto use for the command.sessionOptional
ClientSessionto use when executing this command.Return Value
An
[String]containing the names of all the indexes that were created. -
Drops a single index from the collection by the index name.
Throws
Throws:
MongoError.WriteErrorif an error occurs while performing the command.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.EncodingErrorif an error occurs while encoding the options.
Declaration
Swift
public func dropIndex( _ name: String, options: DropIndexOptions? = nil, session: ClientSession? = nil ) async throwsParameters
nameThe name of the index to drop.
optionsOptional
DropIndexOptionsto use for the command.sessionOptional
ClientSessionto use when executing this command. -
Attempts to drop a single index from the collection given the keys describing it.
Throws
Throws:
MongoError.WriteErrorif an error occurs while performing the command.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif the provided session is inactive.EncodingErrorif an error occurs while encoding the options.
Declaration
Swift
public func dropIndex( _ keys: BSONDocument, options: DropIndexOptions? = nil, session: ClientSession? = nil ) async throwsParameters
keysa
BSONDocumentcontaining the keys for the index to drop.optionsOptional
DropIndexOptionsto use for the command.sessionOptional
ClientSessionto use when executing this command. -
Attempts to drop a single index from the collection given an
IndexModeldescribing it.Throws
Throws:
MongoError.WriteErrorif an error occurs while performing the command.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif the provided session is inactive.EncodingErrorif an error occurs while encoding the options.
Declaration
Swift
public func dropIndex( _ model: IndexModel, options: DropIndexOptions? = nil, session: ClientSession? = nil ) async throwsParameters
modelAn
IndexModeldescribing the index to drop.optionsOptional
DropIndexOptionsto use for the command.sessionOptional
ClientSessionto use when executing this command. -
Drops all indexes in the collection.
Throws
Throws:
MongoError.WriteErrorif an error occurs while performing the command.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif the provided session is inactive.EncodingErrorif an error occurs while encoding the options.
Declaration
Swift
public func dropIndexes( options: DropIndexOptions? = nil, session: ClientSession? = nil ) async throwsParameters
optionsOptional
DropIndexOptionsto use for the command.sessionOptional
ClientSessionto use when executing this command. -
Retrieves a list of the indexes currently on this collection.
Throws
MongoError.LogicErrorif the provided session is inactive.Declaration
Swift
public func listIndexes(session: ClientSession? = nil) async throws -> MongoCursor<IndexModel>Parameters
sessionOptional
ClientSessionto use when executing this command.Return Value
A
MongoCursorover theIndexModels. -
Retrieves a list of names of the indexes currently on this collection.
Throws
MongoError.LogicErrorif the provided session is inactive.Declaration
Swift
public func listIndexNames(session: ClientSession? = nil) async throws -> [String]Parameters
sessionOptional
ClientSessionto use when executing this command.Return Value
A
MongoCursorover the index names. -
Finds the documents in this collection which match the provided filter.
Throws
Throws:
MongoError.InvalidArgumentErrorif the options passed are an invalid combination.MongoError.LogicErrorif the provided session is inactive.EncodingErrorif an error occurs while encoding the options to BSON.
Declaration
Swift
public func find( _ filter: BSONDocument = [:], options: FindOptions? = nil, session: ClientSession? = nil ) async throws -> MongoCursor<CollectionType>Parameters
filterA
BSONDocumentthat should match the query.optionsOptional
FindOptionsto use when executing the command.sessionOptional
ClientSessionto use when executing this command.Return Value
A
MongoCursorover the resultingBSONDocuments. -
Finds a single document in this collection that matches the provided filter.
Throws
Throws:
MongoError.InvalidArgumentErrorif the options passed are an invalid combination.MongoError.LogicErrorif the provided session is inactive.EncodingErrorif an error occurs while encoding the options to BSON.
Declaration
Swift
public func findOne( _ filter: BSONDocument = [:], options: FindOneOptions? = nil, session: ClientSession? = nil ) async throws -> T?Parameters
filterA
BSONDocumentthat should match the query.optionsOptional
FindOneOptionsto use when executing the command.sessionOptional
ClientSessionto use when executing this command.Return Value
the resulting
BSONDocument, or nil if there is no match. -
Runs an aggregation framework pipeline against this collection.
Throws
Throws:
MongoError.InvalidArgumentErrorif the options passed are an invalid combination.MongoError.LogicErrorif the provided session is inactive.EncodingErrorif an error occurs while encoding the options to BSON.
Declaration
Swift
public func aggregate( _ pipeline: [BSONDocument], options: AggregateOptions? = nil, session: ClientSession? = nil ) async throws -> MongoCursor<BSONDocument>Parameters
pipelinean
[BSONDocument]containing the pipeline of aggregation operations to perform.optionsOptional
AggregateOptionsto use when executing the command.sessionOptional
ClientSessionto use when executing this command.Return Value
A
MongoCursorover the resultingBSONDocuments. -
Runs an aggregation framework pipeline against this collection. Associates the specified
CodabletypeOutputTypewith the returnedMongoCursor.Throws
Throws:
MongoError.InvalidArgumentErrorif the options passed are an invalid combination.MongoError.LogicErrorif the provided session is inactive.EncodingErrorif an error occurs while encoding the options to BSON.
Declaration
Swift
public func aggregate<OutputType: Codable>( _ pipeline: [BSONDocument], options: AggregateOptions? = nil, session: ClientSession? = nil, withOutputType _: OutputType.Type ) async throws -> MongoCursor<OutputType>Parameters
pipelinean
[BSONDocument]containing the pipeline of aggregation operations to perform.optionsOptional
AggregateOptionsto use when executing the command.sessionOptional
ClientSessionto use when executing this command.withOutputTypethe type that each resulting document of the output of the aggregation operation will be decoded to.
Return Value
A
MongoCursorover the resultingOutputTypes. -
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: BSONDocument = [:], options: CountDocumentsOptions? = nil, session: ClientSession? = nil ) async throws -> IntParameters
filtera
BSONDocument, the filter that documents must match in order to be counted.optionsOptional
CountDocumentsOptionsto use when executing the command.sessionOptional
ClientSessionto use when executing this command.Return Value
The count of the documents that matched the filter.
-
Gets an estimate of the count of documents in this collection using collection metadata. This operation cannot be used in a transaction.
Declaration
Swift
public func estimatedDocumentCount(options: EstimatedDocumentCountOptions? = nil) async throws -> IntParameters
optionsOptional
EstimatedDocumentCountOptionsto use when executing the command.Return Value
an estimate of the count of documents in this collection.
-
Finds the distinct values for a specified field across the collection.
Throws
Throws:
MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif the provided session is inactive.EncodingErrorif an error occurs while encoding the options to BSON.
Declaration
Swift
public func distinct( fieldName: String, filter: BSONDocument = [:], options: DistinctOptions? = nil, session: ClientSession? = nil ) async throws -> [BSON]Parameters
fieldNameThe field for which the distinct values will be found.
filtera
BSONDocumentrepresenting the filter documents must match in order to be considered for the operation.optionsOptional
DistinctOptionsto use when executing the command.sessionOptional
ClientSessionto use when executing this command.Return Value
A
[BSON]containing the distinct values for the specified criteria. -
Encodes the provided value to BSON and inserts it. If the value is missing an identifier, one will be generated for it.
Throws
Throws:
MongoError.WriteErrorif an error occurs while performing the command.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif the provided session is inactive.EncodingErrorif an error occurs while encoding theCollectionTypeto BSON.
Declaration
Swift
@discardableResult public func insertOne( _ value: CollectionType, options: InsertOneOptions? = nil, session: ClientSession? = nil ) async throws -> InsertOneResult?Parameters
valueA
CollectionTypevalue to encode and insert.optionsOptional
InsertOneOptionsto use when executing the command.sessionOptional
ClientSessionto use when executing this command.Return Value
An
InsertOneResult, ornilif the write concern is unacknowledged. -
Encodes the provided values to BSON and inserts them. If any values are missing identifiers, the driver will generate them.
Throws
Throws:
MongoError.BulkWriteErrorif an error occurs while performing any of the writes.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif the provided session is inactive.EncodingErrorif an error occurs while encoding theCollectionTypeor options to BSON.
Declaration
Swift
@discardableResult public func insertMany( _ values: [CollectionType], options: InsertManyOptions? = nil, session: ClientSession? = nil ) async throws -> InsertManyResult?Parameters
valuesThe
CollectionTypevalues to insert.optionsoptional
InsertManyOptionsto use while executing the operation.sessionOptional
ClientSessionto use when executing this command.Return Value
An
InsertManyResult, ornilif the write concern is unacknowledged. -
Replaces a single document matching the provided filter in this collection.
Throws
Throws:
MongoError.WriteErrorif an error occurs while performing the command.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif the provided session is inactive.EncodingErrorif an error occurs while encoding theCollectionTypeor options to BSON.
Declaration
Swift
@discardableResult public func replaceOne( filter: BSONDocument, replacement: CollectionType, options: ReplaceOptions? = nil, session: ClientSession? = nil ) async throws -> UpdateResult?Parameters
filterA
BSONDocumentrepresenting the match criteria.replacementThe replacement value, a
CollectionTypevalue to be encoded and inserted.optionsOptional
ReplaceOptionsto use when executing the command.sessionOptional
ClientSessionto use when executing this command.Return Value
An
UpdateResult, ornilif the write concern is unacknowledged. -
Updates a single document matching the provided filter in this collection.
Throws
Throws:
MongoError.WriteErrorif an error occurs while performing the command.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif the provided session is inactive.EncodingErrorif an error occurs while encoding the options to BSON.
Declaration
Swift
@discardableResult public func updateOne( filter: BSONDocument, update: BSONDocument, options: UpdateOptions? = nil, session: ClientSession? = nil ) async throws -> UpdateResult?Parameters
filterA
BSONDocumentrepresenting the match criteria.updateA
BSONDocumentrepresenting the update to be applied to a matching document.optionsOptional
UpdateOptionsto use when executing the command.sessionOptional
ClientSessionto use when executing this command.Return Value
An
UpdateResult, ornilif the write concern is unacknowledged. -
Updates a single document matching the provided filter in this collection.
Throws
Throws:
MongoError.WriteErrorif an error occurs while performing the command.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif the provided session is inactive.EncodingErrorif an error occurs while encoding the options to BSON.
Declaration
Swift
@discardableResult public func updateOne( filter: BSONDocument, pipeline: [BSONDocument], options: UpdateOptions? = nil, session: ClientSession? = nil ) async throws -> UpdateResult?Parameters
filterA
BSONDocumentrepresenting the match criteria.pipelineA
[BSONDocument]representing the aggregation pipeline to be applied to a matching document.optionsOptional
UpdateOptionsto use when executing the command.sessionOptional
ClientSessionto use when executing this command.Return Value
An
UpdateResult, ornilif the write concern is unacknowledged. -
Updates multiple documents matching the provided filter in this collection.
Throws
Throws:
MongoError.WriteErrorif an error occurs while performing the command.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif the provided session is inactive.EncodingErrorif an error occurs while encoding the options to BSON.
Declaration
Swift
@discardableResult public func updateMany( filter: BSONDocument, update: BSONDocument, options: UpdateOptions? = nil, session: ClientSession? = nil ) async throws -> UpdateResult?Parameters
filterA
BSONDocumentrepresenting the match criteria.updateA
BSONDocumentrepresenting the update to be applied to matching documents.optionsOptional
UpdateOptionsto use when executing the command.sessionOptional
ClientSessionto use when executing this command.Return Value
An
UpdateResult, ornilif the write concern is unacknowledged. -
Updates multiple documents matching the provided filter in this collection.
Throws
Throws:
MongoError.WriteErrorif an error occurs while performing the command.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif the provided session is inactive.EncodingErrorif an error occurs while encoding the options to BSON.
Declaration
Swift
@discardableResult public func updateMany( filter: BSONDocument, pipeline: [BSONDocument], options: UpdateOptions? = nil, session: ClientSession? = nil ) async throws -> UpdateResult?Parameters
filterA
BSONDocumentrepresenting the match criteria.pipelineA
[BSONDocument]representing the aggregation pipeline to be applied to matching documents.optionsOptional
UpdateOptionsto use when executing the command.sessionOptional
ClientSessionto use when executing this command.Return Value
An
UpdateResult, ornilif the write concern is unacknowledged. -
Deletes a single matching document from the collection.
Throws
Throws:
MongoError.WriteErrorif an error occurs while performing the command.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif the provided session is inactive.EncodingErrorif an error occurs while encoding the options to BSON.
Declaration
Swift
@discardableResult public func deleteOne( _ filter: BSONDocument, options: DeleteOptions? = nil, session: ClientSession? = nil ) async throws -> DeleteResult?Parameters
filterA
BSONDocumentrepresenting the match criteria.optionsOptional
DeleteOptionsto use when executing the command.sessionOptional
ClientSessionto use when executing this command.Return Value
A
DeleteResult, ornilif the write concern is unacknowledged. -
Deletes multiple documents
Throws
Throws:
MongoError.WriteErrorif an error occurs while performing the command.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif the provided session is inactive.EncodingErrorif an error occurs while encoding the options to BSON.
Declaration
Swift
@discardableResult public func deleteMany( _ filter: BSONDocument, options: DeleteOptions? = nil, session: ClientSession? = nil ) async throws -> DeleteResult?Parameters
filterDocument representing the match criteria
optionsOptional
DeleteOptionsto use when executing the commandsessionOptional
ClientSessionto use when executing this commandReturn Value
A
DeleteResult, ornilif the write concern is unacknowledged. -
Execute multiple write operations.
Throws
Throws:
MongoError.InvalidArgumentErrorifrequestsis empty.MongoError.LogicErrorif the provided session is inactive.MongoError.BulkWriteErrorif any error occurs while performing the writes. This includes errors that would typically be thrown asRuntimeErrors orMongoError.CommandErrors elsewhere.EncodingErrorif an error occurs while encoding theCollectionTypeor the options to BSON.
Declaration
Swift
@discardableResult public func bulkWrite( _ requests: [WriteModel<T>], options: BulkWriteOptions? = nil, session: ClientSession? = nil ) async throws -> BulkWriteResult?Parameters
requestsa
[WriteModel]containing the writes to perform.optionsoptional
BulkWriteOptionsto use while executing the operation.sessionOptional
ClientSessionto use when executing this commandReturn Value
a
BulkWriteResult, ornilif the write concern is unacknowledged. -
Execute multiple write operations.
Declaration
Swift
public func bulkWrite( _ requests: [WriteModel<T>], options: BulkWriteOptions? = nil, session: ClientSession? = nil ) -> EventLoopFuture<BulkWriteResult?>Parameters
requestsa
[WriteModel]containing the writes to perform.optionsoptional
BulkWriteOptionsto use while executing the operation.sessionOptional
ClientSessionto use when executing this commandReturn Value
An
EventLoopFuture<BulkWriteResult?>. On success, the future contains either aBulkWriteResult, or containsnilif the write concern is unacknowledged.If the future fails, the error is likely one of the following:
MongoError.InvalidArgumentErrorifrequestsis empty.MongoError.LogicErrorif the provided session is inactive.MongoError.LogicErrorif this collection’s parent client has already been closed.MongoError.BulkWriteErrorif any error occurs while performing the writes. This includes errors that would typically be propagated asRuntimeErrors orMongoError.CommandErrors elsewhere.EncodingErrorif an error occurs while encoding theCollectionTypeor the options to BSON.
-
Starts a
ChangeStreamon this collection. TheCollectionTypewill be associated with thefullDocumentfield inChangeStreamEvents emitted by the returnedChangeStream. The server will return an error if this method is called on a system collection.Warning
If the returned change stream is alive when it goes out of scope, it will leak resources. To ensure the change stream is dead before it leaves scope, invoke
ChangeStream.kill(...)on it.Declaration
Swift
public func watch( _ pipeline: [BSONDocument] = [], options: ChangeStreamOptions? = nil, session: ClientSession? = nil ) -> EventLoopFuture<ChangeStream<ChangeStreamEvent<CollectionType>>>Parameters
pipelineAn array of aggregation pipeline stages to apply to the events returned by the change stream.
optionsAn optional
ChangeStreamOptionsto use when constructing the change stream.sessionAn optional
ClientSessionto use with this change stream.Return Value
An
EventLoopFuture<ChangeStream>. On success, contains aChangeStreamwatching this collection.If the future fails, the error is likely one of the following:
MongoError.CommandErrorif an error occurs on the server while creating the change stream.MongoError.InvalidArgumentErrorif the options passed formed an invalid combination.MongoError.InvalidArgumentErrorif the_idfield is projected out of the change stream documents by the pipeline.
-
Starts a
ChangeStreamon this collection. Associates the specifiedCodabletypeTwith thefullDocumentfield in theChangeStreamEvents emitted by the returnedChangeStream. The server will return an error if this method is called on a system collection.Warning
If the returned change stream is alive when it goes out of scope, it will leak resources. To ensure the change stream is dead before it leaves scope, invoke
ChangeStream.kill(...)on it.Declaration
Swift
public func watch<FullDocType: Codable>( _ pipeline: [BSONDocument] = [], options: ChangeStreamOptions? = nil, session: ClientSession? = nil, withFullDocumentType _: FullDocType.Type ) -> EventLoopFuture<ChangeStream<ChangeStreamEvent<FullDocType>>>Parameters
pipelineAn array of aggregation pipeline stages to apply to the events returned by the change stream.
optionsAn optional
ChangeStreamOptionsto use when constructing the change stream.sessionAn optional
ClientSessionto use with this change stream.withFullDocumentTypeThe type that the
fullDocumentfield of the emittedChangeStreamEvents will be decoded to.Return Value
An
EventLoopFuture<ChangeStream>. On success, contains aChangeStreamwatching this collection.If the future fails, the error is likely one of the following:
MongoError.CommandErrorif an error occurs on the server while creating the change stream.MongoError.InvalidArgumentErrorif the options passed formed an invalid combination.MongoError.InvalidArgumentErrorif the_idfield is projected out of the change stream documents by the pipeline.
-
Starts a
ChangeStreamon this collection. Associates the specifiedCodabletypeTwith the returnedChangeStream. The server will return an error if this method is called on a system collection.Warning
If the returned change stream is alive when it goes out of scope, it will leak resources. To ensure the change stream is dead before it leaves scope, invoke
ChangeStream.kill(...)on it.Declaration
Swift
public func watch<EventType: Codable>( _ pipeline: [BSONDocument] = [], options: ChangeStreamOptions? = nil, session: ClientSession? = nil, withEventType _: EventType.Type ) -> EventLoopFuture<ChangeStream<EventType>>Parameters
pipelineAn array of aggregation pipeline stages to apply to the events returned by the change stream.
optionsAn optional
ChangeStreamOptionsto use when constructing the change stream.sessionAn optional
ClientSessionto use with this change stream.withEventTypeThe 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 aChangeStreamwatching this collection.If the future fails, the error is likely one of the following:
MongoError.CommandErrorif an error occurs on the server while creating the change stream.MongoError.InvalidArgumentErrorif the options passed formed an invalid combination.MongoError.InvalidArgumentErrorif the_idfield is projected out of the change stream documents by the pipeline.
-
Finds a single document and deletes it, returning the original.
Declaration
Swift
public func findOneAndDelete( _ filter: BSONDocument, options: FindOneAndDeleteOptions? = nil, session: ClientSession? = nil ) -> EventLoopFuture<CollectionType?>Parameters
filterBSONDocumentrepresenting the match criteriaoptionsOptional
FindOneAndDeleteOptionsto use when executing the commandsessionOptional
ClientSessionto use when executing this commandReturn Value
An
EventLoopFuture<CollectionType?>. On success, contains either the deleted document, represented as aCollectionType, or containsnilif no document was deleted.If the future fails, the error is likely one of the following:
MongoError.InvalidArgumentErrorif any of the provided options are invalid.MongoError.LogicErrorif the provided session is inactive.MongoError.LogicErrorif this collection’s parent client has already been closed.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.WriteErrorif an error occurs while executing the command.DecodingErrorif the deleted document cannot be decoded to aCollectionTypevalue.
-
Finds a single document and replaces it, returning either the original or the replaced document.
Declaration
Swift
public func findOneAndReplace( filter: BSONDocument, replacement: CollectionType, options: FindOneAndReplaceOptions? = nil, session: ClientSession? = nil ) -> EventLoopFuture<CollectionType?>Parameters
filterBSONDocumentrepresenting the match criteriareplacementa
CollectionTypeto replace the found documentoptionsOptional
FindOneAndReplaceOptionsto use when executing the commandsessionOptional
ClientSessionto use when executing this commandReturn Value
An
EventLoopFuture<CollectionType?>. On success, contains aCollectionType, representing either the original document or its replacement, depending on selected options; or containingnilif there was no matching document.If the future fails, the error is likely one of the following:
MongoError.InvalidArgumentErrorif any of the provided options are invalid.MongoError.LogicErrorif the provided session is inactive.MongoError.LogicErrorif this collection’s parent client has already been closed.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.WriteErrorif an error occurs while executing the command.DecodingErrorif the replaced document cannot be decoded to aCollectionTypevalue.EncodingErrorifreplacementcannot be encoded to aBSONDocument.
-
Finds a single document and updates it, returning either the original or the updated document.
Declaration
Swift
public func findOneAndUpdate( filter: BSONDocument, update: BSONDocument, options: FindOneAndUpdateOptions? = nil, session: ClientSession? = nil ) -> EventLoopFuture<CollectionType?>Parameters
filterBSONDocumentrepresenting the match criteriaupdatea
BSONDocumentcontaining updates to applyoptionsOptional
FindOneAndUpdateOptionsto use when executing the commandsessionOptional
ClientSessionto use when executing this commandReturn Value
An
EventLoopFuture<CollectionType>. On success, contains either the original or updated document, depending on selected options, or containsnilif there was no match.If the future fails, the error is likely one of the following:
MongoError.InvalidArgumentErrorif any of the provided options are invalid.MongoError.LogicErrorif the provided session is inactive.MongoError.LogicErrorif this collection’s parent client has already been closed.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.WriteErrorif an error occurs while executing the command.DecodingErrorif the updated document cannot be decoded to aCollectionTypevalue.
-
Finds a single document and updates it, returning either the original or the updated document.
Declaration
Swift
public func findOneAndUpdate( filter: BSONDocument, pipeline: [BSONDocument], options: FindOneAndUpdateOptions? = nil, session: ClientSession? = nil ) -> EventLoopFuture<CollectionType?>Parameters
filterBSONDocumentrepresenting the match criteriapipelinean array of
BSONDocumentcontaining the aggregation pipeline to applyoptionsOptional
FindOneAndUpdateOptionsto use when executing the commandsessionOptional
ClientSessionto use when executing this commandReturn Value
An
EventLoopFuture<CollectionType>. On success, contains either the original or updated document, depending on selected options, or containsnilif there was no match.If the future fails, the error is likely one of the following:
MongoError.InvalidArgumentErrorif any of the provided options are invalid.MongoError.LogicErrorif the provided session is inactive.MongoError.LogicErrorif this collection’s parent client has already been closed.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.WriteErrorif an error occurs while executing the command.DecodingErrorif the updated document cannot be decoded to aCollectionTypevalue.
-
Creates an index over the collection for the provided keys with the provided options.
Declaration
Swift
public func createIndex( _ keys: BSONDocument, indexOptions: IndexOptions? = nil, options: CreateIndexOptions? = nil, session: ClientSession? = nil ) -> EventLoopFuture<String>Parameters
keysa
BSONDocumentspecifing the keys for the indexindexOptionsOptional
IndexOptionsto use for the indexoptionsOptional
CreateIndexOptionsto use for the commandsessionOptional
ClientSessionto use when executing this commandReturn 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:
MongoError.WriteErrorif an error occurs while performing the write.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif the provided session is inactive.MongoError.LogicErrorif this collection’s parent client has already been closed.EncodingErrorif 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
modelAn
IndexModelrepresenting the keys and options for the indexoptionsOptional
CreateIndexOptionsto use for the commandsessionOptional
ClientSessionto use when executing this commandReturn 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:
MongoError.WriteErrorif an error occurs while performing the write.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif the provided session is inactive.MongoError.LogicErrorif this collection’s parent client has already been closed.EncodingErrorif 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
modelsAn
[IndexModel]specifying the indexes to createoptionsOptional
CreateIndexOptionsto use for the commandsessionOptional
ClientSessionto use when executing this commandReturn 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:
MongoError.WriteErrorif an error occurs while performing the write.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorifmodelsis empty.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif the provided session is inactive.MongoError.LogicErrorif this collection’s parent client has already been closed.EncodingErrorif 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
nameThe name of the index to drop
optionsOptional
DropIndexOptionsto use for the commandsessionOptional
ClientSessionto use when executing this commandReturn Value
An
EventLoopFuture<Void>that succeeds when the drop is successful.If the future fails, the error is likely one of the following:
MongoError.WriteErrorif an error occurs while performing the command.MongoError.LogicErrorif the provided session is inactive.MongoError.LogicErrorif this collection’s parent client has already been closed.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.EncodingErrorif 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: BSONDocument, options: DropIndexOptions? = nil, session: ClientSession? = nil ) -> EventLoopFuture<Void>Parameters
keysa
BSONDocumentcontaining the keys for the index to dropoptionsOptional
DropIndexOptionsto use for the commandsessionOptional
ClientSessionto use when executing this commandReturn Value
An
EventLoopFuture<Void>that succeeds when the drop is successful.If the future fails, the error is likely one of the following:
MongoError.WriteErrorif an error occurs while performing the command.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif the provided session is inactive.MongoError.LogicErrorif this collection’s parent client has already been closed.EncodingErrorif an error occurs while encoding the options.
-
Attempts to drop a single index from the collection given an
IndexModeldescribing it.Declaration
Swift
public func dropIndex( _ model: IndexModel, options: DropIndexOptions? = nil, session: ClientSession? = nil ) -> EventLoopFuture<Void>Parameters
modelAn
IndexModeldescribing the index to dropoptionsOptional
DropIndexOptionsto use for the commandsessionOptional
ClientSessionto use when executing this commandReturn Value
An
EventLoopFuture<Void>that succeeds when the drop is successful.If the future fails, the error is likely one of the following:
MongoError.WriteErrorif an error occurs while performing the command.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif the provided session is inactive.MongoError.LogicErrorif this collection’s parent client has already been closed.EncodingErrorif 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
optionsOptional
DropIndexOptionsto use for the commandsessionOptional
ClientSessionto use when executing this commandReturn Value
An
EventLoopFuture<Void>that succeeds when the drop is successful.If the future fails, the error is likely one of the following:
MongoError.WriteErrorif an error occurs while performing the command.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif the provided session is inactive.MongoError.LogicErrorif this collection’s parent client has already been closed.EncodingErrorif an error occurs while encoding the options.
-
Retrieves a list of the indexes currently on this collection.
Warning
If the returned cursor is alive when it goes out of scope, it will leak resources. To ensure the cursor is dead before it leaves scope, invoke
MongoCursor.kill(...)on it.Declaration
Swift
public func listIndexes(session: ClientSession? = nil) -> EventLoopFuture<MongoCursor<IndexModel>>Parameters
sessionOptional
ClientSessionto use when executing this commandReturn 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:
MongoError.LogicErrorif the provided session is inactive.MongoError.LogicErrorif 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
sessionOptional
ClientSessionto use when executing this commandReturn Value
An
EventLoopFuture<[String]>containing the index names.If the future fails, the error is likely one of the following:
MongoError.LogicErrorif the provided session is inactive.MongoError.LogicErrorif this collection’s parent client has already been closed.
-
Finds the documents in this collection which match the provided filter.
Warning
If the returned cursor is alive when it goes out of scope, it will leak resources. To ensure the cursor is dead before it leaves scope, invoke
MongoCursor.kill(...)on it.Declaration
Swift
public func find( _ filter: BSONDocument = [:], options: FindOptions? = nil, session: ClientSession? = nil ) -> EventLoopFuture<MongoCursor<CollectionType>>Parameters
filterA
BSONDocumentthat should match the queryoptionsOptional
FindOptionsto use when executing the commandsessionOptional
ClientSessionto use when executing this commandReturn 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:
MongoError.InvalidArgumentErrorif the options passed are an invalid combination.MongoError.LogicErrorif the provided session is inactive.MongoError.LogicErrorif this collection’s parent client has already been closed.EncodingErrorif 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: BSONDocument = [:], options: FindOneOptions? = nil, session: ClientSession? = nil ) -> EventLoopFuture<T?>Parameters
filterA
BSONDocumentthat should match the queryoptionsOptional
FindOneOptionsto use when executing the commandsessionOptional
ClientSessionto use when executing this commandReturn 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:
MongoError.InvalidArgumentErrorif the options passed are an invalid combination.MongoError.LogicErrorif the provided session is inactive.MongoError.LogicErrorif this collection’s parent client has already been closed.EncodingErrorif an error occurs while encoding the options to BSON.
-
Runs an aggregation framework pipeline against this collection.
Warning
If the returned cursor is alive when it goes out of scope, it will leak resources. To ensure the cursor is dead before it leaves scope, invoke
MongoCursor.kill(...)on it.Declaration
Swift
public func aggregate( _ pipeline: [BSONDocument], options: AggregateOptions? = nil, session: ClientSession? = nil ) -> EventLoopFuture<MongoCursor<BSONDocument>>Parameters
pipelinean
[BSONDocument]containing the pipeline of aggregation operations to performoptionsOptional
AggregateOptionsto use when executing the commandsessionOptional
ClientSessionto use when executing this commandReturn 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:
MongoError.InvalidArgumentErrorif the options passed are an invalid combination.MongoError.LogicErrorif the provided session is inactive.MongoError.LogicErrorif this collection’s parent client has already been closed.EncodingErrorif an error occurs while encoding the options to BSON.
-
Runs an aggregation framework pipeline against this collection. Associates the specified
CodabletypeOutputTypewith the returnedMongoCursorWarning
If the returned cursor is alive when it goes out of scope, it will leak resources. To ensure the cursor is dead before it leaves scope, invoke
MongoCursor.kill(...)on it.Declaration
Swift
public func aggregate<OutputType: Codable>( _ pipeline: [BSONDocument], options: AggregateOptions? = nil, session: ClientSession? = nil, withOutputType _: OutputType.Type ) -> EventLoopFuture<MongoCursor<OutputType>>Parameters
pipelinean
[BSONDocument]containing the pipeline of aggregation operations to performoptionsOptional
AggregateOptionsto use when executing the commandsessionOptional
ClientSessionto use when executing this commandwithOutputTypethe type that each resulting document of the output of the aggregation operation will be decoded to
Return Value
An
EventLoopFuture<MongoCursor>over the resultingOutputTypesIf the future fails, the error is likely one of the following:
MongoError.InvalidArgumentErrorif the options passed are an invalid combination.MongoError.LogicErrorif the provided session is inactive.MongoError.LogicErrorif this collection’s parent client has already been closed.EncodingErrorif 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: BSONDocument = [:], options: CountDocumentsOptions? = nil, session: ClientSession? = nil ) -> EventLoopFuture<Int>Parameters
filtera
BSONDocument, the filter that documents must match in order to be countedoptionsOptional
CountDocumentsOptionsto use when executing the commandsessionOptional
ClientSessionto use when executing this commandReturn 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:
MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif the provided session is inactive.MongoError.LogicErrorif this collection’s parent client has already been closed.EncodingErrorif an error occurs while encoding the options to BSON.
-
Gets an estimate of the count of documents in this collection using collection metadata. This operation cannot be used in a transaction.
Declaration
Swift
public func estimatedDocumentCount(options: EstimatedDocumentCountOptions? = nil) -> EventLoopFuture<Int>Parameters
optionsOptional
EstimatedDocumentCountOptionsto use when executing the commandReturn 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:
MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif this collection’s parent client has already been closed.EncodingErrorif 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: BSONDocument = [:], options: DistinctOptions? = nil, session: ClientSession? = nil ) -> EventLoopFuture<[BSON]>Parameters
fieldNameThe field for which the distinct values will be found
filtera
BSONDocumentrepresenting the filter documents must match in order to be considered for the operationoptionsOptional
DistinctOptionsto use when executing the commandsessionOptional
ClientSessionto use when executing this commandReturn 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:
MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif the provided session is inactive.MongoError.LogicErrorif this collection’s parent client has already been closed.EncodingErrorif 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
valueA
CollectionTypevalue to encode and insertoptionsOptional
InsertOneOptionsto use when executing the commandsessionOptional
ClientSessionto use when executing this commandReturn Value
An
EventLoopFuture<InsertOneResult?>. On success, contains the result of performing the insert, or containsnilif the write concern is unacknowledged.If the future fails, the error is likely one of the following:
MongoError.WriteErrorif an error occurs while performing the command.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif the provided session is inactive.MongoError.LogicErrorif this collection’s parent client has already been closed.EncodingErrorif an error occurs while encoding theCollectionTypeto 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
valuesThe
CollectionTypevalues to insertoptionsoptional
InsertManyOptionsto use while executing the operationsessionOptional
ClientSessionto use when executing this commandReturn Value
An
EventLoopFuture<InsertManyResult?>. On success, contains the result of performing the inserts, or containsnilif the write concern is unacknowledged.If the future fails, the error is likely one of the following:
MongoError.BulkWriteErrorif an error occurs while performing any of the writes.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif the provided session is inactive.MongoError.LogicErrorif this collection’s parent client has already been closed.EncodingErrorif an error occurs while encoding theCollectionTypeor options to BSON.
-
Replaces a single document matching the provided filter in this collection.
Declaration
Swift
public func replaceOne( filter: BSONDocument, replacement: CollectionType, options: ReplaceOptions? = nil, session: ClientSession? = nil ) -> EventLoopFuture<UpdateResult?>Parameters
filterA
BSONDocumentrepresenting the match criteriareplacementThe replacement value, a
CollectionTypevalue to be encoded and insertedoptionsOptional
ReplaceOptionsto use when executing the commandsessionOptional
ClientSessionto use when executing this commandReturn Value
An
EventLoopFuture<UpdateResult?>. On success, contains the result of performing the replacement, or containsnilif the write concern is unacknowledged.If the future fails, the error is likely one of the following:
MongoError.WriteErrorif an error occurs while performing the command.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif the provided session is inactive.MongoError.LogicErrorif this collection’s parent client has already been closed.EncodingErrorif an error occurs while encoding theCollectionTypeor options to BSON.
-
Updates a single document matching the provided filter in this collection.
Declaration
Swift
public func updateOne( filter: BSONDocument, update: BSONDocument, options: UpdateOptions? = nil, session: ClientSession? = nil ) -> EventLoopFuture<UpdateResult?>Parameters
filterA
BSONDocumentrepresenting the match criteriaupdateA
BSONDocumentrepresenting the update to be applied to a matching documentoptionsOptional
UpdateOptionsto use when executing the commandsessionOptional
ClientSessionto use when executing this commandReturn Value
An
EventLoopFuture<UpdateResult?>. On success, contains the result of performing the update, or containsnilif the write concern is unacknowledged.If the future fails, the error is likely one of the following:
MongoError.WriteErrorif an error occurs while performing the command.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif the provided session is inactive.MongoError.LogicErrorif this collection’s parent client has already been closed.EncodingErrorif an error occurs while encoding the options to BSON.
-
Updates a single document matching the provided filter in this collection.
Declaration
Swift
public func updateOne( filter: BSONDocument, pipeline: [BSONDocument], options: UpdateOptions? = nil, session: ClientSession? = nil ) -> EventLoopFuture<UpdateResult?>Parameters
filterA
BSONDocumentrepresenting the match criteriapipelineAn array of
BSONDocumentrepresenting the aggregation pipeline to be applied to a matching documentoptionsOptional
UpdateOptionsto use when executing the commandsessionOptional
ClientSessionto use when executing this commandReturn Value
An
EventLoopFuture<UpdateResult?>. On success, contains the result of performing the update, or containsnilif the write concern is unacknowledged.If the future fails, the error is likely one of the following:
MongoError.WriteErrorif an error occurs while performing the command.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif the provided session is inactive.MongoError.LogicErrorif this collection’s parent client has already been closed.EncodingErrorif 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: BSONDocument, update: BSONDocument, options: UpdateOptions? = nil, session: ClientSession? = nil ) -> EventLoopFuture<UpdateResult?>Parameters
filterA
BSONDocumentrepresenting the match criteriaupdateA
BSONDocumentrepresenting the update to be applied to matching documentsoptionsOptional
UpdateOptionsto use when executing the commandsessionOptional
ClientSessionto use when executing this commandReturn Value
An
EventLoopFuture<UpdateResult?>. On success, contains the result of performing the update, or containsnilif the write concern is unacknowledged.If the future fails, the error is likely one of the following:
MongoError.WriteErrorif an error occurs while performing the command.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif the provided session is inactive.MongoError.LogicErrorif this collection’s parent client has already been closed.EncodingErrorif 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: BSONDocument, pipeline: [BSONDocument], options: UpdateOptions? = nil, session: ClientSession? = nil ) -> EventLoopFuture<UpdateResult?>Parameters
filterA
BSONDocumentrepresenting the match criteriapipelineAn array of
BSONDocumentrepresenting the aggregation pipeline to be applied to matching documentsoptionsOptional
UpdateOptionsto use when executing the commandsessionOptional
ClientSessionto use when executing this commandReturn Value
An
EventLoopFuture<UpdateResult?>. On success, contains the result of performing the update, or containsnilif the write concern is unacknowledged.If the future fails, the error is likely one of the following:
MongoError.WriteErrorif an error occurs while performing the command.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif the provided session is inactive.MongoError.LogicErrorif this collection’s parent client has already been closed.EncodingErrorif an error occurs while encoding the options to BSON.
-
Deletes a single matching document from the collection.
Declaration
Swift
public func deleteOne( _ filter: BSONDocument, options: DeleteOptions? = nil, session: ClientSession? = nil ) -> EventLoopFuture<DeleteResult?>Parameters
filterA
BSONDocumentrepresenting the match criteriaoptionsOptional
DeleteOptionsto use when executing the commandsessionOptional
ClientSessionto use when executing this commandReturn Value
An
EventLoopFuture<DeleteResult?>. On success, contains the result of performing the deletion, or containsnilif the write concern is unacknowledged.If the future fails, the error is likely one of the following:
MongoError.WriteErrorif an error occurs while performing the command.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif the provided session is inactive.MongoError.LogicErrorif this collection’s parent client has already been closed.EncodingErrorif an error occurs while encoding the options to BSON.
-
Deletes all matching documents from the collection.
Declaration
Swift
public func deleteMany( _ filter: BSONDocument, options: DeleteOptions? = nil, session: ClientSession? = nil ) -> EventLoopFuture<DeleteResult?>Parameters
filterDocument representing the match criteria
optionsOptional
DeleteOptionsto use when executing the commandsessionOptional
ClientSessionto use when executing this commandReturn Value
An
EventLoopFuture<DeleteResult?>. On success, contains the result of performing the deletions, or containsnilif the write concern is unacknowledged.If the future fails, the error is likely one of the following:
MongoError.WriteErrorif an error occurs while performing the command.MongoError.CommandErrorif an error occurs that prevents the command from executing.MongoError.InvalidArgumentErrorif the options passed in form an invalid combination.MongoError.LogicErrorif the provided session is inactive.MongoError.LogicErrorif this collection’s parent client has already been closed.EncodingErrorif an error occurs while encoding the options to BSON.
View on GitHub
Install in Dash
MongoCollection Structure Reference