类:Mongo::BulkWrite::ResultCombiner Private

继承:
对象
  • 对象
显示全部
定义于:
lib/ Mongo/bulk_write/result_combiner.rb

Overview

此类是私有 API 的一部分。 应尽可能避免使用此类,因为它将来可能会被删除或更改。

将批量写入结果合并在一起。

由于:

  • 2.1.0

实例属性摘要折叠

实例方法摘要折叠

构造函数详情

#初始化ResultCombiner

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

创建新的结果组合器。

例子:

创建结果组合器。

ResultCombiner.new

由于:

  • 2.1.0



43
44
45
46
47
# File 'lib/ Mongo/bulk_write/result_combiner.rb', line 43

def 初始化
  @results = {}
  @count = 0
  @server_addresses = []
end

实例属性详细信息

# countInteger (readonly)

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

返回 count 整个批处理中的文档数。

返回:

  • ( Integer )

    count 整个批处理中的文档数量。

由于:

  • 2.1.0



26
27
28
# File 'lib/ Mongo/bulk_write/result_combiner.rb', line 26

def 数数
  @count
end

# 个结果哈希(只读)

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

返回结果 结果哈希。

返回:

  • (哈希)

    结果结果哈希。

由于:

  • 2.1.0



29
30
31
# File 'lib/ Mongo/bulk_write/result_combiner.rb', line 29

def 结果
  @results
end

#server_addresses数组<String> (只读)

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

返回生成组合操作结果的服务器的去重复 "托管:端口" 地址列表。

返回:

  • ( Array<String> )

    生成组合操作结果的服务器的“托管:端口”地址的去重复列表。

由于:

  • 2.1.0



33
34
35
# File 'lib/ Mongo/bulk_write/result_combiner.rb', line 33

def server_addresses
  @server_addresses
end

实例方法详细信息

#结合! (结果,计数)→对象

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

将结果添加到总体结果中。

例子:

添加结果。

combiner.combine!(result, count)

参数:

  • 结果 ( Operation::Result )

    要合并的结果。

  • 数数 ( Integer )

    批处理中的请求计数。

由于:

  • 2.1.0



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/ Mongo/bulk_write/result_combiner.rb', line 60

def 合并!(结果, 数数)
  #服务器可以在多个字段中传达错误:
  # writeError, writeErrors, writeConcernError, writeConcernErrors.
  # 目前,只有 writeConcernErrors 中给出的错误才会导致
  # 请勿添加计数,因为此行为由
  # 可重试写入测试。 有可能是部分或全部
  # 将计数和
  # id,也有可能只有这些错误的子集
  # 字段实际上在批量写入的情况下是可能的。
  除非 结果.write_concern_error?
    merge_counts!(结果)
    组合_id!(结果)
  end
  组合错误!(结果)
  @count += 数数
  @acknowledged = 结果.已确认?
  种子轮 = 结果.connection_description&。地址&。种子轮
  @server_addresses << 种子轮 if 种子轮 && !@server_addresses.包括?(种子轮)
end

#结果BulkWrite::Result

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

获取最终结果。

返回:

由于:

  • 2.1.0



87
88
89
# File 'lib/ Mongo/bulk_write/result_combiner.rb', line 87

def 结果
  批量写入::结果.new(结果, @acknowledged, @server_addresses).validate!
end