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)

    参数

    filter

    表示匹配条件的 bson Document

    update

    一个 bson Document ,表示要应用于匹配文档的更新。

    upsert

    如果为 true,则在没有文档与查询匹配的情况下创建新文档。

    completion

    尝试更新文档的结果。

  • 更新与此collection中提供的筛选器匹配的单个文档。

    声明

    Swift

    public func updateOneDocument(filter: Document,
                                  update: Document,
                                  _ completion: @escaping MongoUpdateBlock)

    参数

    filter

    表示匹配条件的 bson Document

    update

    一个 bson Document ,表示要应用于匹配文档的更新。

    completion

    尝试更新文档的结果。

  • 更新与此collection中提供的筛选器匹配的多个文档。

    声明

    Swift

    public func updateManyDocuments(filter: Document,
                                    update: Document,
                                    upsert: Bool,
                                    _ completion: @escaping MongoUpdateBlock)

    参数

    filter

    表示匹配条件的 bson Document

    update

    一个 bson Document ,表示要应用于匹配文档的更新。

    upsert

    如果为 true,则在没有文档与查询匹配的情况下创建新文档。

    completion

    尝试更新文档的结果。

  • 更新与此collection中提供的筛选器匹配的多个文档。

    声明

    Swift

    public func updateManyDocuments(filter: Document,
                                    update: Document,
                                    _ completion: @escaping MongoUpdateBlock)

    参数

    filter

    表示匹配条件的 bson Document

    update

    一个 bson Document ,表示要应用于匹配文档的更新。

    completion

    尝试更新文档的结果。

  • 根据查询筛选器更新集合中的单个文档,并以其更新前或更新后的形式返回该文档。 与updateOneDocument不同,此操作允许您使用相同命令以原子方式查找、更新和返回文档。 这样可以避免其他更新操作在单独的查找和更新操作之间更改文档的风险。

    声明

    Swift

    public func findOneAndUpdate(filter: Document,
                                 update: Document,
                                 options: FindOneAndModifyOptions,
                                 _ completion: @escaping MongoFindOneBlock)

    参数

    filter

    表示匹配条件的 bson Document

    update

    一个 bson Document ,表示要应用于匹配文档的更新。

    options

    RemoteFindOneAndModifyOptions 执行命令时使用。

    completion

    尝试更新文档的结果。

  • 根据查询筛选器更新集合中的单个文档,并以其更新前或更新后的形式返回该文档。 与updateOneDocument不同,此操作允许您使用相同命令以原子方式查找、更新和返回文档。 这样可以避免其他更新操作在单独的查找和更新操作之间更改文档的风险。

    声明

    Swift

    public func findOneAndUpdate(filter: Document,
                                 update: Document,
                                 _ completion: @escaping MongoFindOneBlock)

    参数

    filter

    表示匹配条件的 bson Document

    update

    一个 bson Document ,表示要应用于匹配文档的更新。

    completion

    尝试更新文档的结果。

  • 根据查询筛选器覆盖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)

    参数

    filter

    应与查询匹配的Document

    replacement

    描述替换项的Document

    options

    RLMFindOneAndModifyOptions 执行命令时使用。

    completion

    尝试替换文档的结果。

  • 根据查询筛选器从集合中删除单个文档,并返回与删除前的文档具有相同格式的文档。 与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的发布者。

    声明

    Swift

    func insertOne(_ document: Document) -> Future<AnyBSON, Error>
  • 将提供的值编码为BSON并插入。 如果有任何值缺少标识符,则会生成这些值。 @param documents:要插入BSON大量中的 Document 值。 @returns 最终返回插入文档或Error的对象ID 的发布者。

    声明

    Swift

    func insertMany(_ documents: [Document]) -> Future<[AnyBSON], Error>
  • 查找此集合中与提供的过滤匹配的文档。 @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的发布者。

    声明

    Swift

    func find(filter: Document) -> Future<[Document], Error>
  • 从集合或视图中返回与提供的过滤匹配的一个文档。 如果多个文档满足查询条件,则此方法根据查询的排序顺序或自然顺序返回第一个文档。 @param 过滤:作为BSON的 Document,应与查询匹配。 @param options: FindOptions执行命令时使用。 @returns 最终返回DocumentError的发布者。

    声明

    Swift

    func findOneDocument(filter: Document, options: FindOptions) -> Future<Document?, Error>
  • 从集合或视图中返回与提供的过滤匹配的一个文档。 如果多个文档满足查询条件,则此方法根据查询的排序顺序或自然顺序返回第一个文档。 @param 过滤:作为BSON的 Document,应与查询匹配。 @returns 如果未找到文档,则最终返回Documentnil ,或者Error

    声明

    Swift

    func findOneDocument(filter: Document) -> Future<Document?, Error>
  • 针对此集合运行聚合框架管道。 @param 管道:由 Documents 组成的BSON大量,其中包含要执行的聚合操作的管道。 @returns 最终返回DocumentError的发布者。

    声明

    Swift

    func aggregate(pipeline: [Document]) -> Future<[Document], Error>
  • 计算此集合中与提供的过滤匹配的文档数。 @param 过滤:作为BSON的 Document,应与查询匹配。 @param limit:要计数的最大文档数量 @returns 最终返回Int个文档或Error的发布者。

    声明

    Swift

    func count(filter: Document, limit: Int) -> Future<Int, Error>
  • 计算此集合中与提供的过滤匹配的文档数。 @param 过滤:作为BSON的 Document,应与查询匹配。 @returns 最终返回Int个文档或Error的发布者。

    声明

    Swift

    func count(filter: Document) -> Future<Int, Error>
  • 从集合中删除单个匹配文档。 @param 过滤:作为BSON的 Document,应与查询匹配。 @returns 最终返回Int已删除文档的计数或Error的发布者。

    声明

    Swift

    func deleteOneDocument(filter: Document) -> Future<Int, Error>
  • 删除多个文档 @param 过滤:表示匹配条件的文档 @returns 最终返回Int已删除文档的计数或Error的发布者。

    声明

    Swift

    func deleteManyDocuments(filter: Document) -> Future<Int, Error>
  • 更新与此集合中提供的过滤匹配的单个文档。 @param 过滤:表示匹配条件的BSON Document。 @param 更新 :一个BSON Document,表示要应用于匹配文档的更新。 @param 更新或插入(upsert) :为 true 时,如果没有与查询匹配的文档,则创建新文档。 @returns 最终返回UpdateResultError的发布者。

    声明

    Swift

    func updateOneDocument(filter: Document, update: Document, upsert: Bool) -> Future<UpdateResult, Error>
  • 更新与此集合中提供的过滤匹配的单个文档。 @param 过滤:表示匹配条件的BSON Document。 @param 更新 :一个BSON Document,表示要应用于匹配文档的更新。 @returns 最终返回UpdateResultError的发布者。

    声明

    Swift

    func updateOneDocument(filter: Document, update: Document) -> Future<UpdateResult, Error>
  • 更新与此集合中提供的过滤匹配的多个文档。 @param 过滤:表示匹配条件的BSON Document。 @param 更新 :一个BSON Document,表示要应用于匹配文档的更新。 @param 更新或插入(upsert) :为 true 时,如果没有与查询匹配的文档,则创建新文档。 @returns 最终返回UpdateResultError的发布者。

    声明

    Swift

    func updateManyDocuments(filter: Document, update: Document, upsert: Bool) -> Future<UpdateResult, Error>
  • 更新与此集合中提供的过滤匹配的多个文档。 @param 过滤:表示匹配条件的BSON Document。 @param 更新 :一个BSON Document,表示要应用于匹配文档的更新。 @returns 最终返回UpdateResultError的发布者。

    声明

    Swift

    func updateManyDocuments(filter: Document, update: Document) -> Future<UpdateResult, Error>
  • 根据查询过滤更新集合中的单个文档,并以其更新前或更新后的形式返回该文档。 与updateOneDocument不同,此操作允许您使用同一动作以原子方式查找、更新和返回文档。 这样可以避免其他更新操作在单独的查找和更新操作之间更改文档的风险。 @param 过滤:表示匹配条件的BSON Document。 @param 更新 :一个BSON Document,表示要应用于匹配文档的更新。 @param options: RemoteFindOneAndModifyOptions执行命令时使用。 @returns 如果未找到文档,则最终返回Documentnil ,或者Error

    声明

    Swift

    func findOneAndUpdate(filter: Document, update: Document, options: FindOneAndModifyOptions) -> Future<Document?, Error>
  • 根据查询过滤更新集合中的单个文档,并以其更新前或更新后的形式返回该文档。 与updateOneDocument不同,此操作允许您使用同一动作以原子方式查找、更新和返回文档。 这样可以避免其他更新操作在单独的查找和更新操作之间更改文档的风险。 @param 过滤:表示匹配条件的BSON Document。 @param 更新 :一个BSON Document,表示要应用于匹配文档的更新。 @returns 如果未找到文档,则最终返回Documentnil ,或者Error

    声明

    Swift

    func findOneAndUpdate(filter: Document, update: Document) -> Future<Document?, Error>
  • 根据查询过滤覆盖集合中的单个文档,并以其替换前或替换后的形式返回该文档。 与updateOneDocument不同,此操作允许您使用相同动作以原子方式查找、替换和返回文档。 这样可以避免其他更新操作在单独的查找和更新操作之间更改文档的风险。 @param 过滤:应与查询匹配的Document 。 @param replacement:描述替换的Document 。 @param options: FindOneAndModifyOptions执行命令时使用。 @returns 如果未找到文档,则最终返回Documentnil ,或者Error

    声明

    Swift

    func findOneAndReplace(filter: Document, replacement: Document, options: FindOneAndModifyOptions) -> Future<Document?, Error>
  • 根据查询过滤覆盖集合中的单个文档,并以其替换前或替换后的形式返回该文档。 与updateOneDocument不同,此操作允许您使用相同动作以原子方式查找、替换和返回文档。 这样可以避免其他更新操作在单独的查找和更新操作之间更改文档的风险。 @param 过滤:应与查询匹配的Document 。 @param replacement:描述替换的Document 。 @returns 如果未找到文档,则最终返回Documentnil ,或者Error

    声明

    Swift

    func findOneAndReplace(filter: Document, replacement: Document) -> Future<Document?, Error>
  • 根据查询过滤从集合中删除单个文档,并返回与删除前的文档具有相同格式的文档。 与deleteOneDocument不同,此操作允许您使用相同动作以原子方式查找和删除文档。 这样可以避免其他更新操作在单独的查找和删除操作之间更改文档的风险。 @param 过滤:应与查询匹配的Document 。 @param options: FindOneAndModifyOptions执行命令时使用。 @returns 如果未找到文档,则最终返回Documentnil ,或者Error

    声明

    Swift

    func findOneAndDelete(filter: Document, options: FindOneAndModifyOptions) -> Future<Document?, Error>
  • 根据查询过滤从集合中删除单个文档,并返回与删除前的文档具有相同格式的文档。 与deleteOneDocument不同,此操作允许您使用相同动作以原子方式查找和删除文档。 这样可以避免其他更新操作在单独的查找和删除操作之间更改文档的风险。 @param 过滤:应与查询匹配的Document 。 @returns 如果未找到文档,则最终返回Documentnil ,或者Error

    声明

    Swift

    func findOneAndDelete(filter: Document) -> Future<Document?, Error>