类:Mongo::Operation::Insert::BulkResult

继承:
结果
  • 对象
显示全部
包括:
可聚合
定义于:
build/Ruby-driver-v 2.19 /lib/mongo/operation/insert/bulk_result.rb

Overview

定义作为批量写入的一部分发送时插入结果的自定义行为。

由于:

  • 2.0.0

常量摘要

Result继承的常量

Result::CURSORResult::CURSOR_IDResult::FIRST_BATCHResult::NResult::NAMESPACEResult::NEXT_BATCHResult::OKResult::RESULT

实例属性摘要折叠

Result继承的属性

#connection_description#connection_global_id#replies

实例方法摘要折叠

Result继承的方法

#acknowledged? 、#cluster_time、 # cursor_id、#documents、# each 、# error # has_cursor_id ? #inspect #labels 、# namespace 、# ok? #operation_time #reply #returned_count #snapshot_timestamp #successful? #topology_version #validate! , #write_concern_error? , #liter_count

构造函数详情

#initialize (replies, connection_description, connection_global_id, ids) ⇒ BulkResult

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

初始化新结果。

例子:

实例化结果。

Result.new(replies, inserted_ids)

参数:

  • 回复 (Array<Protocol::Message> | nil)

    传输协议回复(如果有)。

  • connection_description ( Server::Description )

    MongoDB Server对执行此结果所属操作的服务器的描述。

  • connection_global_id ( Integer )

    执行此结果所属操作的连接的全局 ID。

  • id ( Array<Object> )

    已插入文档的 ID。

由于:

  • 2.0.0



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'build/Ruby-driver-v 2.19 /lib/mongo/operation/insert/bulk_result.rb', 第51行

def 初始化(回复, connection_description, connection_global_id, id)
  @replies = [*回复] if 回复
  @connection_description = connection_description
  @connection_global_id = connection_global_id
  if 回复 && 回复.first && (doc = 回复.first.文档.first)
    if errors = doc[' writeErrors ']
      # 可能插入了一些文档
      Bad_indices = {}
      errors.map do |错误|
        Bad_indices[错误[' index ']] = true
      end
      @inserted_ids = []
      id.each_with_index do |id, 索引(index)|
        if Bad_indices[索引(index)].nil?
          @inserted_ids << id
        end
      end
    # 不知道是否认可? 如有必要,请在此处进行检查,
    # 据我所知,这并没有什么坏处
    elsif 已确认? && 成功?
      # 我们已收到回复,且回复成功后
      #reply 没有 writeErrors - 一切都已插入
      @inserted_ids = id
    else
      # 我们已收到回复,但回复未成功,并且
      # 它没有 writeErrors — 没有插入任何内容。
      # 如果插入了某些内容,则回复将不成功
      # 但会有 writeErrors
      @inserted_ids = []
    end
  else
    # 我认为我们不应该走到这一步,但谁知道呢,
    # 使其表现得像旧驱动程序一样
    @inserted_ids = id
  end
end

实例属性详细信息

# Insert_Ids对象(只读)

获取插入文档的 ID。

由于:

  • 2.0.0



33
34
35
# File 'build/Ruby-driver-v 2.19 /lib/mongo/operation/insert/bulk_result.rb', 第33行

def Inserted_Ids
  @inserted_ids
end

实例方法详细信息

# Insert_id对象

获取插入的文档的 ID。

例子:

获取插入文档的 ID。

result.inserted_id

返回:

  • ( Object )

    插入文档的 ID。

由于:

  • 2.0.0



110
111
112
# File 'build/Ruby-driver-v 2.19 /lib/mongo/operation/insert/bulk_result.rb', 第110行

def Inserted_id
  Inserted_Ids.first
end

# n_inserted整数

获取插入的文档数。

例子:

获取插入的文档数量。

result.n_inserted

返回:

  • ( Integer )

    插入的文档数量。

由于:

  • 2.0.0



97
98
99
# File 'build/Ruby-driver-v 2.19 /lib/mongo/operation/insert/bulk_result.rb', 第97行

def n_inserted
  Write_Count
end