MongoClient
public class MongoClientextension MongoClient: EquatableA MongoDB Client providing an asynchronous, SwiftNIO-based API.
- 
                  
                  Encoder whose options are inherited by databases derived from this client. DeclarationSwift public let encoder: BSONEncoder
- 
                  
                  Decoder whose options are inherited by databases derived from this client. DeclarationSwift public let decoder: BSONDecoder
- 
                  
                  The read concern set on this client, or nil if one is not set. DeclarationSwift public let readConcern: ReadConcern?
- 
                  
                  The ReadPreferenceset on this client.DeclarationSwift public let readPreference: ReadPreference
- 
                  
                  The write concern set on this client, or nil if one is not set. DeclarationSwift public let writeConcern: WriteConcern?
- 
                  
                  Create a new client for a MongoDB deployment. For options that included in both the connection string URI and the MongoClientOptions struct, the final value is set in descending order of priority: the value specified in MongoClientOptions (if non-nil), the value specified in the URI, or the default value if both are unset. Throws Throws: - A MongoError.InvalidArgumentErrorif the connection string passed in is improperly formatted.
 DeclarationSwift public init( _ connectionString: String = "mongodb://localhost:27017", using eventLoopGroup: EventLoopGroup, options: MongoClientOptions? = nil ) throwsParametersconnectionStringthe connection string to connect to. eventLoopGroupA SwiftNIO EventLoopGroupwhich the client will use for executing operations. It is the user’s responsibility to ensure the group remains active for as long as the client does, and to ensure the group is properly shut down when it is no longer in use.optionsoptional MongoClientOptionsto use for this client
- A 
- 
                  
                  Closes this MongoClient, closing all connections to the server and cleaning up internal state.Call this method exactly once when you are finished using the client. You must ensure that all operations using the client have completed before calling this. The returned future will not be fulfilled until all cursors and change streams created from this client have been been killed, and all sessions created from this client have been ended. The returned future must be fulfilled before the EventLoopGroupprovided to this client’s constructor is shut down.DeclarationSwift public func close() -> EventLoopFuture<Void>
- 
                  
                  Shuts this MongoClientdown in a blocking fashion, closing all connections to the server and cleaning up internal state.Call this method exactly once when you are finished using the client. You must ensure that all operations using the client have completed before calling this. This method will block until all cursors and change streams created from this client have been killed, and all sessions created from this client have been ended. This method must complete before the EventLoopGroupprovided to this client’s constructor is shut down.DeclarationSwift public func syncClose() throws
- 
                  
                  Starts a new ClientSessionwith the provided options. When you are done using this session, you must callClientSession.end()on it.DeclarationSwift public func startSession(options: ClientSessionOptions? = nil) -> ClientSession
- 
                  
                  Starts a new ClientSessionwith the provided options and passes it to the provided closure. The session is only valid within the body of the closure and will be ended after the body completes.DeclarationSwift public func withSession<T>( options: ClientSessionOptions? = nil, _ sessionBody: (ClientSession) throws -> EventLoopFuture<T> ) -> EventLoopFuture<T>ParametersoptionsOptions to use when creating the session. sessionBodyA closure which takes in a ClientSessionand returns anEventLoopFuture<T>.Return ValueAn EventLoopFuture<T>, the return value of the user-provided closure.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.
 
- 
                  
                  Retrieves a list of databases in this client’s MongoDB deployment. DeclarationSwift public func listDatabases( _ filter: BSONDocument? = nil, options: ListDatabasesOptions? = nil, session: ClientSession? = nil ) -> EventLoopFuture<[DatabaseSpecification]>ParametersfilterOptional 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 ValueAn EventLoopFuture<[DatabaseSpecification]>. 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.
 
- 
                  
                  Get a list of MongoDatabases corresponding to the databases in this client’s MongoDB deployment.DeclarationSwift public func listMongoDatabases( _ filter: BSONDocument? = nil, options: ListDatabasesOptions? = nil, session: ClientSession? = nil ) -> EventLoopFuture<[MongoDatabase]>ParametersfilterOptional BSONDocumentspecifying a filter on the names of the returned databases.optionsOptional ListDatabasesOptionsspecifying options for listing databases.sessionOptional ClientSessionto use when executing this commandReturn ValueAn EventLoopFuture<[MongoDatabase]>. On success, the future contains an array ofMongoDatabases 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.
 
- 
                  
                  Get the names of databases in this client’s MongoDB deployment. DeclarationSwift public func listDatabaseNames( _ filter: BSONDocument? = nil, options: ListDatabasesOptions? = nil, session: ClientSession? = nil ) -> EventLoopFuture<[String]>ParametersfilterOptional BSONDocumentspecifying a filter on the names of the returned databases.optionsOptional ListDatabasesOptionsspecifying options for listing databases.sessionOptional ClientSessionto use when executing this commandReturn ValueAn EventLoopFuture<[String]>. 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. If an option is not specified in the optionalMongoDatabaseOptionsparam, the database will inherit the value from the parent client or 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).DeclarationSwift public func db(_ name: String, options: MongoDatabaseOptions? = nil) -> MongoDatabaseParametersnamethe name of the database to retrieve optionsOptional MongoDatabaseOptionsto use for the retrieved databaseReturn Valuea MongoDatabasecorresponding to the provided database name.
- 
                  
                  Starts a ChangeStreamon aMongoClient. 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. DeclarationSwift public func watch( _ pipeline: [BSONDocument] = [], options: ChangeStreamOptions? = nil, session: ClientSession? = nil ) -> EventLoopFuture<ChangeStream<ChangeStreamEvent<BSONDocument>>>ParameterspipelineAn 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 ValueAn EventLoopFuture<ChangeStream>. On success, contains aChangeStreamwatching all collections in this deployment.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 aMongoClient. 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. DeclarationSwift public func watch<FullDocType: Codable>( _ pipeline: [BSONDocument] = [], options: ChangeStreamOptions? = nil, session: ClientSession? = nil, withFullDocumentType _: FullDocType.Type ) -> EventLoopFuture<ChangeStream<ChangeStreamEvent<FullDocType>>>ParameterspipelineAn 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 ValueAn EventLoopFuture<ChangeStream>. On success, contains aChangeStreamwatching all collections in this deployment.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 aMongoClient. 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. DeclarationSwift public func watch<EventType: Codable>( _ pipeline: [BSONDocument] = [], options: ChangeStreamOptions? = nil, session: ClientSession? = nil, withEventType _: EventType.Type ) -> EventLoopFuture<ChangeStream<EventType>>ParameterspipelineAn 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 ValueAn EventLoopFuture<ChangeStream>. On success, contains aChangeStreamwatching all collections in this deployment.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.
 
- 
                  
                  Attach a CommandEventHandlerthat will receiveCommandEvents emitted by this client.Note: the client stores a weak reference to this handler, so it must be kept alive separately in order for it to continue to receive events. DeclarationSwift public func addCommandEventHandler<T>(_ handler: T) where T : CommandEventHandler
- 
                  
                  Attach a callback that will receive CommandEvents emitted by this client.Note: if the provided callback captures this client, it must do so weakly. Otherwise, it will constitute a strong reference cycle and potentially result in memory leaks. DeclarationSwift public func addCommandEventHandler(_ handlerFunc: @escaping (CommandEvent) -> Void)
- 
                  
                  Attach an SDAMEventHandlerthat will receiveCommandEvents emitted by this client.Note: the client stores a weak reference to this handler, so it must be kept alive separately in order for it to continue to receive events. DeclarationSwift public func addSDAMEventHandler<T>(_ handler: T) where T : SDAMEventHandler
- 
                  
                  Attach a callback that will receive SDAMEvents emitted by this client.Note: if the provided callback captures this client, it must do so weakly. Otherwise, it will constitute a strong reference cycle and potentially result in memory leaks. DeclarationSwift public func addSDAMEventHandler(_ handlerFunc: @escaping (SDAMEvent) -> Void)
- 
                  
                  DeclarationSwift public static func == (lhs: MongoClient, rhs: MongoClient) -> Bool
 View on GitHub
            View on GitHub
           Install in Dash
            Install in Dash
           MongoClient Class Reference
      MongoClient Class Reference