MongoCollection
extension MongoCollection
-
打开针对集合的 MongoDB 变更流以监视更改。 生成的流将收到有关此集合的所有事件的通知,根据配置的 MongoDB 规则,授权活动用户查看这些事件。
声明
Swift
public func watch(delegate: ChangeEventDelegate, queue: DispatchQueue = .main) -> ChangeStream
参数
delegate
对生成的变更流中的事件和错误做出反应的委托。
queue
将流媒体事件分派到可选队列,如果未提供队列,则使用主队列
返回值
将管理流事件的 ChangeStream。
-
打开针对collection的MongoDB change stream以监视更改。提供的 BSON 文档将用作来自流的变更事件的匹配表达式筛选器。
请参阅https://mongodb.com/zh-cn/docs/manual/reference/operator/aggregation/match/ 了解有关如何定义匹配筛选器的文档。
定义用于筛选 ChangeEvent 的匹配表达式与为Atlas Triggers定义匹配表达式类似: https ://mongodb.com/zh-cn/docs/realm/triggers/database-triggers/
声明
Swift
public func watch(matchFilter: Document, delegate: ChangeEventDelegate, queue: DispatchQueue = .main) -> ChangeStream
参数
matchFilter
应用于传入变更事件的 $match 筛选器
delegate
对生成的变更流中的事件和错误做出反应的委托。
queue
将流媒体事件分派到可选队列,如果未提供队列,则使用主队列
返回值
将管理流事件的 ChangeStream。
-
打开针对集合的 MongoDB 变更流,以监视对特定文档所做的更改。 要监视的文档必须由其 _id 明确指定。
声明
Swift
public func watch(filterIds: [ObjectId], delegate: ChangeEventDelegate, queue: DispatchQueue = .main) -> ChangeStream
参数
filterIds
要监视的集合中的 _id 列表。
delegate
对生成的变更流中的事件和错误做出反应的委托。
queue
将流媒体事件分派到可选队列,如果未提供队列,则使用主队列
返回值
将管理流事件的 ChangeStream。
-
将提供的值编码为 BSON 并将其插入。 如果该值缺少标识符,则会为其生成一个标识符。
声明
Swift
public func insertOne(_ document: Document, _ completion: @escaping MongoInsertBlock)
参数
document
document 要插入的
Document
值。completion
尝试执行插入操作的结果。 成功后将返回插入对象的 Id
-
将提供的值编码为 BSON 并插入。 如果有任何值缺少标识符,则会生成这些值。
声明
Swift
public func insertMany(_ documents: [Document], _ completion: @escaping MongoInsertManyBlock)
参数
documents
要插入的 bson 数组中的
Document
值。completion
插入的结果按顺序返回插入的文档 ID 的数组。
-
查找此collection中与提供的筛选器匹配的文档。
声明
Swift
public func find(filter: Document, options: FindOptions, _ completion: @escaping MongoFindBlock)
参数
filter
作为 bson 的
Document
,应与查询匹配。options
FindOptions
执行命令时使用。completion
生成的 bson 文档数组或错误(如果发生)
-
查找此collection中与提供的筛选器匹配的文档。
声明
Swift
public func find(filter: Document, _ completion: @escaping MongoFindBlock)
参数
filter
作为 bson 的
Document
,应与查询匹配。completion
生成的 bson 文档数组或错误(如果发生)
-
从与提供的筛选器匹配的集合或视图中返回一个文档。 如果多个文档满足查询条件,则此方法根据查询的排序顺序或自然顺序返回第一个文档。
声明
Swift
public func findOneDocument(filter: Document, options: FindOptions, _ completion: @escaping MongoFindOneBlock)
参数
filter
作为 bson 的
Document
,应与查询匹配。options
FindOptions
执行命令时使用。completion
如果发生以下情况,则产生的 bson 或错误:
-
从与提供的筛选器匹配的集合或视图中返回一个文档。 如果多个文档满足查询条件,则此方法根据查询的排序顺序或自然顺序返回第一个文档。
声明
Swift
public func findOneDocument(filter: Document, _ completion: @escaping MongoFindOneBlock)
参数
filter
作为 bson 的
Document
,应与查询匹配。completion
如果发生以下情况,则产生的 bson 或错误:
-
针对此collection运行聚合框架管道。
声明
Swift
public func aggregate(pipeline: [Document], _ completion: @escaping MongoFindBlock)
参数
pipeline
由
Documents
组成的 bson 数组,其中包含要执行的聚合操作的管道。completion
生成的 bson 文档数组或错误(如果发生)
-
计算此集合中与提供的筛选器匹配的文档数量。
声明
Swift
public func count(filter: Document, limit: Int, _ completion: @escaping MongoCountBlock)
参数
filter
作为 bson 的
Document
,应与查询匹配。limit
要计数的最大文档数
completion
返回与筛选器匹配的文档计数。
-
计算此集合中与提供的筛选器匹配的文档数量。
声明
Swift
public func count(filter: Document, _ completion: @escaping MongoCountBlock)
参数
filter
作为 bson 的
Document
,应与查询匹配。completion
返回与筛选器匹配的文档计数。
-
从collection中删除单个匹配文档。
声明
Swift
public func deleteOneDocument(filter: Document, _ completion: @escaping MongoCountBlock)
参数
filter
作为 bson 的
Document
,应与查询匹配。completion
执行删除的结果。 返回已删除对象的计数
-
删除多个文档
声明
Swift
public func deleteManyDocuments(filter: Document, _ completion: @escaping MongoCountBlock)
参数
filter
表示匹配条件的文档
completion
执行删除的结果。 返回删除操作的计数
-
更新与此collection中提供的筛选器匹配的单个文档。
声明
Swift
public func updateOneDocument(filter: Document, update: Document, upsert: Bool, _ completion: @escaping MongoUpdateBlock)
-
更新与此collection中提供的筛选器匹配的单个文档。
声明
Swift
public func updateOneDocument(filter: Document, update: Document, _ completion: @escaping MongoUpdateBlock)
-
更新与此collection中提供的筛选器匹配的多个文档。
声明
Swift
public func updateManyDocuments(filter: Document, update: Document, upsert: Bool, _ completion: @escaping MongoUpdateBlock)
-
更新与此collection中提供的筛选器匹配的多个文档。
声明
Swift
public func updateManyDocuments(filter: Document, update: Document, _ completion: @escaping MongoUpdateBlock)
-
根据查询筛选器更新集合中的单个文档,并以其更新前或更新后的形式返回该文档。 与
updateOneDocument
不同,此操作允许您使用相同命令以原子方式查找、更新和返回文档。 这样可以避免其他更新操作在单独的查找和更新操作之间更改文档的风险。声明
Swift
public func findOneAndUpdate(filter: Document, update: Document, options: FindOneAndModifyOptions, _ completion: @escaping MongoFindOneBlock)
-
根据查询筛选器更新集合中的单个文档,并以其更新前或更新后的形式返回该文档。 与
updateOneDocument
不同,此操作允许您使用相同命令以原子方式查找、更新和返回文档。 这样可以避免其他更新操作在单独的查找和更新操作之间更改文档的风险。声明
Swift
public func findOneAndUpdate(filter: Document, update: Document, _ completion: @escaping MongoFindOneBlock)
-
根据查询筛选器覆盖collection中的单个文档,并以其帖子替换前或替换帖子的形式返回该文档。与
updateOneDocument
不同,此操作允许您使用相同命令以原子方式查找、替换和返回文档。 这样可以避免其他更新操作在单独的查找和更新操作之间更改文档的风险。声明
Swift
public func findOneAndReplace(filter: Document, replacement: Document, options: FindOneAndModifyOptions, _ completion: @escaping MongoFindOneBlock)
参数
filter
应与查询匹配的
Document
。replacement
描述替换项的
Document
。options
FindOneAndModifyOptions
执行命令时使用。completion
尝试替换文档的结果。
-
根据查询筛选器覆盖collection中的单个文档,并以其帖子替换前或替换帖子的形式返回该文档。与
updateOneDocument
不同,此操作允许您使用相同命令以原子方式查找、替换和返回文档。 这样可以避免其他更新操作在单独的查找和更新操作之间更改文档的风险。声明
Swift
public func findOneAndReplace(filter: Document, replacement: Document, _ completion: @escaping MongoFindOneBlock)
-
根据查询筛选器从集合中删除单个文档,并返回与删除前的文档具有相同格式的文档。 与
deleteOneDocument
不同,此操作允许您使用相同命令以原子方式查找和删除文档。 这样可以避免其他更新操作在单独的查找和删除操作之间更改文档的风险。声明
Swift
public func findOneAndDelete(filter: Document, options: FindOneAndModifyOptions, _ completion: @escaping MongoFindOneBlock)
参数
filter
应与查询匹配的
Document
。options
FindOneAndModifyOptions
执行命令时使用。completion
尝试删除文档的结果。
-
根据查询筛选器从集合中删除单个文档,并返回与删除前的文档具有相同格式的文档。 与
deleteOneDocument
不同,此操作允许您使用相同命令以原子方式查找和删除文档。 这样可以避免其他更新操作在单独的查找和删除操作之间更改文档的风险。声明
Swift
public func findOneAndDelete(filter: Document, _ completion: @escaping MongoFindOneBlock)
参数
filter
应与查询匹配的
Document
。completion
尝试删除文档的结果。
-
创建发布者,每次 MongoDB collection更改时,该发布者都会发出 AnyBSON 事件。
声明
Swift
public func watch() -> Publishers.WatchPublisher
返回值
每次collection更改时发出 AnyBSON 事件的发布者。
-
创建发布者,每次 MongoDB collection更改时,该发布者都会发出 AnyBSON 事件。
声明
Swift
public func watch(filterIds: [ObjectId]) -> Publishers.WatchPublisher
参数
filterIds
要监视的集合中的 _id 列表。
返回值
每次collection更改时发出 AnyBSON 事件的发布者。
-
创建发布者,每次 MongoDB collection更改时,该发布者都会发出 AnyBSON 事件。
声明
Swift
public func watch(matchFilter: Document) -> Publishers.WatchPublisher
参数
matchFilter
应用于传入变更事件的 $match 筛选器。
返回值
每次collection更改时发出 AnyBSON 事件的发布者。
-
将提供的值编码为BSON并将其插入。 如果该值缺少标识符,则会为其生成一个标识符。 @param 文档:要插入的
Document
值。 @returns 最终返回插入文档的对象ID 或Error
的发布者。 -
将提供的值编码为BSON并插入。 如果有任何值缺少标识符,则会生成这些值。 @param documents:要插入BSON大量中的
Document
值。 @returns 最终返回插入文档或Error
的对象ID 的发布者。 -
查找此集合中与提供的过滤匹配的文档。 @param 过滤:作为BSON的
Document
,应与查询匹配。 @param options:FindOptions
执行命令时使用。 @returns 最终返回[ObjectId]
文档或Error
的发布者。声明
Swift
func find(filter: Document, options: FindOptions) -> Future<[Document], Error>
-
查找此集合中与提供的过滤匹配的文档。 @param 过滤:作为BSON的
Document
,应与查询匹配。 @returns 最终返回[ObjectId]
文档或Error
的发布者。 -
从集合或视图中返回与提供的过滤匹配的一个文档。 如果多个文档满足查询条件,则此方法根据查询的排序顺序或自然顺序返回第一个文档。 @param 过滤:作为BSON的
Document
,应与查询匹配。 @param options:FindOptions
执行命令时使用。 @returns 最终返回Document
或Error
的发布者。声明
Swift
func findOneDocument(filter: Document, options: FindOptions) -> Future<Document?, Error>
-
针对此集合运行聚合框架管道。 @param 管道:由
Documents
组成的BSON大量,其中包含要执行的聚合操作的管道。 @returns 最终返回Document
或Error
的发布者。 -
删除多个文档 @param 过滤:表示匹配条件的文档 @returns 最终返回
Int
已删除文档的计数或Error
的发布者。声明
Swift
func deleteManyDocuments(filter: Document) -> Future<Int, Error>
-
更新与此集合中提供的过滤匹配的单个文档。 @param 过滤:表示匹配条件的BSON
Document
。 @param 更新 :一个BSONDocument
,表示要应用于匹配文档的更新。 @param 更新或插入(upsert) :为 true 时,如果没有与查询匹配的文档,则创建新文档。 @returns 最终返回UpdateResult
或Error
的发布者。声明
Swift
func updateOneDocument(filter: Document, update: Document, upsert: Bool) -> Future<UpdateResult, Error>
-
更新与此集合中提供的过滤匹配的单个文档。 @param 过滤:表示匹配条件的BSON
Document
。 @param 更新 :一个BSONDocument
,表示要应用于匹配文档的更新。 @returns 最终返回UpdateResult
或Error
的发布者。声明
Swift
func updateOneDocument(filter: Document, update: Document) -> Future<UpdateResult, Error>
-
更新与此集合中提供的过滤匹配的多个文档。 @param 过滤:表示匹配条件的BSON
Document
。 @param 更新 :一个BSONDocument
,表示要应用于匹配文档的更新。 @param 更新或插入(upsert) :为 true 时,如果没有与查询匹配的文档,则创建新文档。 @returns 最终返回UpdateResult
或Error
的发布者。声明
Swift
func updateManyDocuments(filter: Document, update: Document, upsert: Bool) -> Future<UpdateResult, Error>
-
更新与此集合中提供的过滤匹配的多个文档。 @param 过滤:表示匹配条件的BSON
Document
。 @param 更新 :一个BSONDocument
,表示要应用于匹配文档的更新。 @returns 最终返回UpdateResult
或Error
的发布者。声明
Swift
func updateManyDocuments(filter: Document, update: Document) -> Future<UpdateResult, Error>
-
根据查询过滤更新集合中的单个文档,并以其更新前或更新后的形式返回该文档。 与
updateOneDocument
不同,此操作允许您使用同一动作以原子方式查找、更新和返回文档。 这样可以避免其他更新操作在单独的查找和更新操作之间更改文档的风险。 @param 过滤:表示匹配条件的BSONDocument
。 @param 更新 :一个BSONDocument
,表示要应用于匹配文档的更新。 @param options:RemoteFindOneAndModifyOptions
执行命令时使用。 @returns 如果未找到文档,则最终返回Document
或nil
,或者Error
。声明
Swift
func findOneAndUpdate(filter: Document, update: Document, options: FindOneAndModifyOptions) -> Future<Document?, Error>
-
根据查询过滤覆盖集合中的单个文档,并以其替换前或替换后的形式返回该文档。 与
updateOneDocument
不同,此操作允许您使用相同动作以原子方式查找、替换和返回文档。 这样可以避免其他更新操作在单独的查找和更新操作之间更改文档的风险。 @param 过滤:应与查询匹配的Document
。 @param replacement:描述替换的Document
。 @param options:FindOneAndModifyOptions
执行命令时使用。 @returns 如果未找到文档,则最终返回Document
或nil
,或者Error
。声明
Swift
func findOneAndReplace(filter: Document, replacement: Document, options: FindOneAndModifyOptions) -> Future<Document?, Error>
-
根据查询过滤从集合中删除单个文档,并返回与删除前的文档具有相同格式的文档。 与
deleteOneDocument
不同,此操作允许您使用相同动作以原子方式查找和删除文档。 这样可以避免其他更新操作在单独的查找和删除操作之间更改文档的风险。 @param 过滤:应与查询匹配的Document
。 @param options:FindOneAndModifyOptions
执行命令时使用。 @returns 如果未找到文档,则最终返回Document
或nil
,或者Error
。声明
Swift
func findOneAndDelete(filter: Document, options: FindOneAndModifyOptions) -> Future<Document?, Error>