클래스: Mongo::Operation::Insert::BulkResult

상속:
결과
  • 객체
모두 표시
다음을 포함합니다.
집계 가능
다음에 정의됨:
build/ruby-driver-v2.19/lib/mongo/operation/insert/bulk_result.rb

개요

대량 쓰기의 일부로 전송된 삽입에 대한 결과의 사용자 지정 동작을 정의합니다.

이후:

  • 2.0.0

상수 요약

Result에서 상속된 상수

Result::CURSOR, Result::CURSOR_ID, Result::FIRST_BATCH, Result::N, Result::NAMESPACE, Result::NEXT_BATCH, Result::OK, 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?, #write_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 (정수)

    이 결과가 적용된 작업이 수행된 연결의 글로벌 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
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/insert/bulk_result.rb', 줄 51

def 초기화(답장, connection_description, connection_global_id, ID)
  @replies = [*답장] 만약 답장
  @connection_description = connection_description
  @connection_global_id = connection_global_id
  만약 답장 && 답장.first && (doc = 답장.first.문서.first)
    만약 errors = doc['writeErrors']
      # 일부 문서가 삽입되었을 가능성이 있습니다.
      배드 인덱스 = {}
      errors.map do |오류|
        배드 인덱스[오류['인덱스']] = true
      end
      @inserted_ids = []
      ID.each_with_index do |id, index|
        만약 배드 인덱스[index].nil?
          @inserted_ids << id
        end
      end
    #인정이 되었는지 모르겠다. 여기에서 확인이 필요합니다.
    # 최대한 아프지 않습니다.
    elsif 인정? && 성공했니?
      # 회신이 있으며 회신이 성공했으며
      # 회신에 writeErrors 없음 - 모든 항목이 삽입됨
      @inserted_ids = ID
    other
      # 회신을 받았지만 회신이 실패했습니다.
      # writeErrors가 없습니다 - 아무것도 삽입되지 않았습니다.
      # 무언가가 삽입되면 회신이 성공하지 못합니다.
      # 하지만 writeErrors가 발생합니다.
      @inserted_ids = []
    end
  other
    # 여기까지 오면 안 될 것 같지만,
    # 이전 드라이버처럼 작동하도록 합니다.
    @inserted_ids = ID
  end
end

인스턴스 속성 세부 정보

#insert_ids객체 (읽기 전용)

삽입된 문서의 ID를 가져옵니다.

이후:

  • 2.0.0



33
34
35
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/insert/bulk_result.rb', 줄 33

def insert_ids
  @inserted_ids
end

인스턴스 메서드 세부 정보

#insert_id객체

삽입된 문서의 ID를 가져옵니다.

예시:

삽입된 문서의 ID를 가져옵니다.

result.inserted_id

반환합니다:

  • (객체)

    삽입된 문서의 ID입니다.

이후:

  • 2.0.0



110
111
112
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/insert/bulk_result.rb', 줄 110

def insert_id
  insert_ids.first
end

#n_inserted정수

삽입된 문서 수를 가져옵니다.

예시:

삽입된 문서 수를 가져옵니다.

result.n_inserted

반환합니다:

  • (정수)

    삽입된 문서 수입니다.

이후:

  • 2.0.0



97
98
99
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/insert/bulk_result.rb', 줄 97

def n_inserted
  write_count
end