EventLoopBoundMongoClient
public struct EventLoopBoundMongoClient
A wrapper around a MongoClient that will return EventLoopFutures on the specified EventLoop.
-
The
EventLoopthisEventLoopBoundMongoClientwill be bound to.Declaration
Swift
public let eventLoop: EventLoop -
Retrieves a list of databases in this client’s MongoDB deployment. The returned future will be on the
EventLoopspecified on thisEventLoopBoundMongoClient.Declaration
Swift
public func listDatabases( _ filter: BSONDocument? = nil, options: ListDatabasesOptions? = nil, session: ClientSession? = nil ) -> EventLoopFuture<[DatabaseSpecification]>Parameters
filterOptional
BSONDocumentspecifying a filter that the listed databases must pass. This filter can be based on the “name”, “sizeOnDisk”, “empty”, or “shards” fields of the output.optionsOptional
ListDatabasesOptionsspecifying options for listing databases.sessionOptional
ClientSessionto use when executing this command.Return Value
An
EventLoopFuture<[DatabaseSpecification]>on theEventLoopspecified on thisEventLoopBoundMongoClient. On success, the future contains an array of the specifications of databases matching the provided criteria.If the future fails, the error is likely one of the following:
MongoError.LogicErrorif the provided session is inactive.MongoError.LogicErrorif this client has already been closed.EncodingErrorif an error is encountered while encoding the options to BSON.MongoError.CommandErrorif options.authorizedDatabases is false and the user does not have listDatabases permissions.
-
Gets the names of databases in this client’s MongoDB deployment. The returned future will be on the
EventLoopspecified on thisEventLoopBoundMongoClient.Declaration
Swift
public func listDatabaseNames( _ filter: BSONDocument? = nil, options: ListDatabasesOptions? = nil, session: ClientSession? = nil ) -> EventLoopFuture<[String]>Parameters
filterOptional
BSONDocumentspecifying a filter on the names of the returned databases.optionsOptional
ListDatabasesOptionsspecifying options for listing databases.sessionOptional
ClientSessionto use when executing this commandReturn Value
An
EventLoopFuture<[String]>on theEventLoopspecified on thisEventLoopBoundMongoClient. On success, the future contains an array of names of databases that match the provided filter.If the future fails, the error is likely one of the following:
MongoError.LogicErrorif the provided session is inactive.MongoError.LogicErrorif this client has already been closed.MongoError.CommandErrorif options.authorizedDatabases is false and the user does not have listDatabases permissions.
-
Gets a
MongoDatabaseinstance for the given database name that will returnEventLoopFutures on thisEventLoopBoundMongoClient‘sEventLoop. If an option is not specified in the optionalMongoDatabaseOptionsparam, the database will inherit the value from thisEventLoopBoundMongoClient’s underlyingMongoClientor the default if the client’s option is not set. To override an option inherited from the client (e.g. a read concern) with the default value, it must be explicitly specified in the options param (e.g. ReadConcern.serverDefault, not nil).Declaration
Swift
public func db(_ name: String, options: MongoDatabaseOptions? = nil) -> MongoDatabaseParameters
namethe name of the database to retrieve
optionsOptional
MongoDatabaseOptionsto use for the retrieved databaseReturn Value
A
MongoDatabasethat is bound to thisEventLoopBoundMongoClient‘sEventLoop. -
Starts a
ChangeStreamon thisEventLoopBoundMongoClient. The returned future will be on theEventLoopspecified on thisEventLoopBoundMongoClient. Allows the client to observe all changes in a cluster - excluding system collections and the “config”, “local”, and “admin” databases.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.See also
SeeAlso:
Note
Supported in MongoDB version 4.0+ only.
Declaration
Swift
public func watch( _ pipeline: [BSONDocument] = [], options: ChangeStreamOptions? = nil, session: ClientSession? = nil ) -> EventLoopFuture<ChangeStream<ChangeStreamEvent<BSONDocument>>>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 thisEventLoopBoundMongoClient‘sEventLoop. On success, contains aChangeStreamwatching all collections in this deployment. TheChangeStream’s methods will return futures on theEventLoopspecified on thisEventLoopBoundMongoClient.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 thisEventLoopBoundMongoClient. The returned future will be on theEventLoopspecified on thisEventLoopBoundMongoClient. Allows the client to observe all changes in a cluster - excluding system collections and the “config”, “local”, and “admin” databases. Associates the specifiedCodabletypeTwith thefullDocumentfield in theChangeStreamEvents emitted by the returnedChangeStream.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.See also
SeeAlso:
Note
Supported in MongoDB version 4.0+ only.
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 thisEventLoopBoundMongoClient‘sEventLoop. On success, contains aChangeStreamwatching all collections in this deployment. TheChangeStream’s methods will return futures on theEventLoopspecified on thisEventLoopBoundMongoClient.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 thisEventLoopBoundMongoClient. The returned future will be on theEventLoopspecified on thisEventLoopBoundMongoClient. Allows the client to observe all changes in a cluster - excluding system collections and the “config”, “local”, and “admin” databases. Associates the specifiedCodabletypeTwith the returnedChangeStream.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.See also
SeeAlso:
Note
Supported in MongoDB version 4.0+ only.
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 thisEventLoopBoundMongoClient‘sEventLoop. On success, contains aChangeStreamwatching all collections in this deployment. TheChangeStream’s methods will return futures on theEventLoopspecified on thisEventLoopBoundMongoClient.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 new
ClientSessionwith the provided options. TheClientSessionwill be bound to theEventLoopspecified on thisEventLoopBoundMongoClient. When you are done using this session, you must callClientSession.end()on it.Declaration
Swift
public func startSession(options: ClientSessionOptions? = nil) -> ClientSessionParameters
optionsThe options to use when starting this session.
Return Value
A
ClientSessionthat is bound to thisEventLoopBoundMongoClient‘sEventLoop. -
Starts a new
ClientSessionwith the provided options and passes it to the provided closure. The returned future will be on theEventLoopspecified on thisEventLoopBoundMongoClient. The session is only valid within the body of the closure and will be ended after the body completes.Declaration
Swift
public func withSession<T>( options: ClientSessionOptions? = nil, _ sessionBody: (ClientSession) throws -> EventLoopFuture<T> ) -> EventLoopFuture<T>Parameters
optionsOptions to use when creating the session.
sessionBodyA closure which takes in a
ClientSessionand returns anEventLoopFuture<T>.Return Value
An
EventLoopFuture<T>, the return value of the user-provided closure, on thisEventLoopBoundMongoClient‘sEventLoop.If the future fails, the error is likely one of the following:
CompatibilityErrorif the deployment does not support sessions.MongoError.LogicErrorif this client has already been closed.
View on GitHub
Install in Dash
EventLoopBoundMongoClient Structure Reference