클래스: Mongo::Operation::Result

상속:
객체
  • 객체
모두 표시
확장자:
전달 가능
다음을 포함합니다.
Enumerable
다음에 정의됨:
build/ruby-driver-v2.19/lib/mongo/operation/result.rb,
build/ruby-driver-v2.19/lib/mongo/operation/shared/result/aggregatable.rb,
build/ruby-driver-v2.19/lib/mongo/operation/shared/result/use_legacy_error_parser.rb

개요

유선 프로토콜 응답에 대한 결과 래퍼입니다.

작업에는 0개 또는 1개의 응답이 있습니다. 응답이 0인 유일한 작업은 승인되지 않은 쓰기입니다. 다른 모든 작업은 하나의 회신을 생성합니다. 이 클래스는 작업이 응답을 생성하지 않은 경우(예: 성공한 것으로 가정)에도 작업(예: 작업 성공 여부 확인)할 수 있는 객체를 제공합니다.

이후:

  • 2.0.0

네임스페이스 아래에 정의됨

모듈: 애그리게이션 가능, UseLegacyErrorParser

상수 요약 접기

CURSOR =

이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

애그리게이션에서 커서 문서의 필드 이름입니다.

이후:

  • 2.2.0

'cursor'.동결
CURSOR_ID =

이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

커서 문서의 커서 ID 필드입니다.

이후:

  • 2.2.0

'ID'.동결
FIRST_BACH =

이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

커서의 첫 번째 배치에 대한 필드 이름입니다.

이후:

  • 2.2.0

'firstBatch'.동결
NEXT_BACH =

이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

커서의 다음 배치에 대한 필드 이름입니다.

이후:

  • 2.2.0

'NextBatch'.동결
NAMESPACE =

이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

커서 문서 의 네임스페이스 필드 입니다.

이후:

  • 2.2.0

'ns'.동결
N =

이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

쓰기에서 업데이트된 문서 수입니다.

이후:

  • 2.0.0

'n'.동결
확인 =

이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

결과의 ok 상태 필드입니다.

이후:

  • 2.0.0

'ok'.동결
결과 =

이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

결과 필드 상수입니다.

이후:

  • 2.2.0

'결과'.동결

인스턴스 속성 요약 접기

인스턴스 메서드 요약 접기

생성자 세부 정보

#initialize(replies, connection_description = nil, connection_global_id = nil) ⇒ 결과

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

새 결과를 초기화합니다.

승인되지 않은 쓰기의 경우 회신으로 nil을 전달합니다.

For all other operations, replies must be a Protocol::Message instance or an array containing a single Protocol::Message instance.

매개변수:

  • 답장 (Protocol::Message | Array<Protocol::Message> | nil)

    유선 프로토콜이 응답합니다.

  • connection_description (Server::Description | nil) (기본값: nil)

    이 결과의 대상 작업을 수행한 서버에 대한 MongoDB Server 설명입니다. 이 매개변수는 기존 mongo_kerberos 라이브러리와의 호환성을 위해 nil이 될 수 있지만 적절한 드라이버에서는 항상 nil이 아니어야 합니다.

  • connection_global_id (정수) (기본값: nil)

    이 결과가 적용된 작업이 수행된 연결의 글로벌 ID입니다.

이후:

  • 2.0.0



105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/result.rb', 줄 105

def 초기화(답장, connection_description = nil, connection_global_id = nil)
  만약 답장
    만약 답장.is_a?(배열)
      만약 답장.분량 != 1
        올리다 ArgumentError, "주어진 #{replies.length}"에서 회신은 하나만 지원됩니다(또는 0개) .
      end
      회신 = 답장.first
    other
      회신 = 답장
    end
    하지 않는 한 회신.is_a?(protocol::메시지)
      올리다 ArgumentError, "인수는 메시지 인스턴스여야 하지만 #{회신.클래스}: #{회신.검사}"
    end
    @replies = [ 회신 ]
    @connection_description = connection_description
    @connection_global_id = connection_global_id
  end
end

인스턴스 속성 세부 정보

#connection_descriptionServer::Description (읽기 전용)

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

이 결과의 대상이 되는 작업이 수행된 서버에 대한 MongoDB Server 설명을 반환합니다.

반환합니다:

  • (Server::Description)

    이 결과의 대상인 작업이 수행된 서버 에 대한 서버 설명입니다.

이후:

  • 2.0.0



133
134
135
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/result.rb', 줄 133

def connection_description
  @connection_description
end

#connection_global_id객체 (읽기 전용)

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

반환값 글로벌은 이 결과에 대한 작업이 수행된 연결에 대한 것입니다.

반환합니다:

  • (객체)

    전역은 이 결과에 대한 작업이 수행된 연결입니다.

이후:

  • 2.0.0



139
140
141
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/result.rb', 줄 139

def connection_global_id
  @connection_global_id
end

#repliesArray<Protocol::Message> (readonly)

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

래핑된 유선 프로토콜 응답을 반환합니다.

반환합니다:

이후:

  • 2.0.0



127
128
129
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/result.rb', 줄 127

def 답장
  @replies
end

인스턴스 메서드 세부 정보

#승인되었나요?true, false

참고:

MongoDB 2.6 이상에서는 드라이버가 모든 쓰기 작업에 쓰기 명령을 사용하므로 모든 쓰기가 승인됩니다. 2.4 이하에서는 명령 후에 GLE가 실행된 경우 결과가 승인됩니다. 그렇지 않은 경우에는 응답이 지정되지 않습니다. 여기에서는 항상 응답이 제공되므로 읽기는 항상 true를 반환합니다.

결과가 인정되나요?

반환합니다:

  • (true, false)

    결과가 승인된 경우.

이후:

  • 2.0.0



157
158
159
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/result.rb', 줄 157

def 인정?
  !!@replies
end

#cluster_timeClusterTime | nil

서버 응답에서 보고된 클러스터 시간을 가져옵니다.

버전 2.9.0 에서 변경됨: 이 속성은 BSON::Document의 하위 클래스인 ClusterTime의 인스턴스가 되었습니다. 이전에는 BSON::Document의 인스턴스였습니다.

예시:

클러스터 시간을 가져옵니다.

result.cluster_time

반환합니다:

  • (ClusterTime | nil)

    클러스터 시간 문서입니다.

이후:

  • 2.5.0



424
425
426
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/result.rb', 줄 424

def cluster_time
  first_document && ClusterTime[first_document['$clusterTime']]
end

#cursor_id정수

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

참고:

커서 ID가 0 이면 서버에 커서가 없음을 나타냅니다.

응답이 승인되면 커서 ID를 가져옵니다.

예시:

커서 ID를 가져옵니다.

result.cursor_id

반환합니다:

  • (정수)

    커서 ID입니다.

이후:

  • 2.0.0



181
182
183
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/result.rb', 줄 181

def cursor_id
  인정? ? 답장.last.cursor_id : 0
end

문서 # 개 ⇒ Array<BSON::Document>

결과에서 문서를 가져옵니다.

예시:

문서를 가져옵니다.

result.documents

반환합니다:

  • (Array<BSON::Document>)

    문서.

이후:

  • 2.0.0



205
206
207
208
209
210
211
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/result.rb', 줄 205

def 문서
  만약 인정?
    답장.flat_map(&:documents)
  other
    []
  end
end

# {|Each| ... } ⇒ 열거자

회신의 문서를 반복합니다.

예시:

문서를 반복합니다.

result.each do |doc|
  p doc
end

수율 매개변수:

  • (BSON::Document)

    문서를 결과에 표시합니다.

반환합니다:

  • (열거자)

    열거자입니다.

이후:

  • 2.0.0



226
227
228
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/result.rb', 줄 226

def (&차단)
  문서.(&차단)
end

#오류오류::OperationFailure

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

이 결과를 처리하는 동안 발생할 예외 인스턴스(Error::OperationFailure 클래스)입니다.

이 메서드는 결과가 성공하지 못한 경우에만 호출해야 합니다.

반환합니다:

이후:

  • 2.0.0



341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/result.rb', 줄 341

def 오류
  @error ||= 오류::OperationFailure.신규(
    구문 분석기.메시지,
    self,
    코드: 구문 분석기.코드,
    code_name: 구문 분석기.code_name,
    write_concern_error_document: 구문 분석기.write_concern_error_document,
    write_concern_error_code: 구문 분석기.write_concern_error_code,
    write_concern_error_code_name: 구문 분석기.write_concern_error_code_name,
    write_concern_error_labels: 구문 분석기.write_concern_error_labels,
    레이블: 구문 분석기.labels,
    wtimeout: 구문 분석기.w 시간 초과,
    connection_description: connection_description,
    문서: 구문 분석기.문서,
    server_message: 구문 분석기.server_message,
  )
end

#has_cursor_id?true, false

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

결과에 cursor_id가 포함되는지 여부

반환합니다:

  • (true, false)

    결과에 cursor_id가 포함된 경우.

이후:

  • 2.0.0



166
167
168
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/result.rb', 줄 166

def has_cursor_id?
  인정? && 답장.last.response_to?(:cursor_id)
end

#검사string

결과에 대한 예쁜 형식의 검사를 가져옵니다.

예시:

결과를 검사합니다.

result.inspect

반환합니다:

  • (string)

    검사.

이후:

  • 2.0.0



239
240
241
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/result.rb', 줄 239

def 검사
  "#<#{self.class.name}:0x#{object_id} 문서=#{문서}>"
end

#레이블배열

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

결과와 관련된 오류 레이블 집합을 가져옵니다.

예시:

레이블을 가져옵니다.

result.labels

반환합니다:

  • (배열)

    레이블 레이블 집합입니다.

이후:

  • 2.7.0



437
438
439
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/result.rb', 줄 437

def labels
  @labels ||= 구문 분석기.labels
end

#네임스페이스Nil

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

커서의 네임스페이스를 가져옵니다. 이 메서드는 서버 응답에서 'ns'가 포함된 결과 클래스에서 정의되어야 합니다.

반환합니다:

  • (Nil)

이후:

  • 2.0.0



192
193
194
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/result.rb', 줄 192

def namespace
  nil
end

#네?true, false

첫 번째 문서의 확인 필드를 확인합니다.

예시:

확인 필드를 확인합니다.

result.ok?

반환합니다:

  • (true, false)

    명령이 정상을 반환한 경우.

이후:

  • 2.1.0



305
306
307
308
309
310
311
312
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/result.rb', 줄 305

def 좋아?
  # first_document[OK]는 부동 소수점이며, 서버는 다음을 반환할 수 있습니다.
  # ok를 BSON int32, BSON int64 또는 BSON double로 지정합니다.
  # 숫자 1 은 부동 소수점으로 정확히 표현할 수 있으므로
  # 1.0 == 1 는 항상 올바르게 수행됩니다.
  # (서버가 성공하여 1 이외의 것을 반환할 때까지, 즉)
  first_document[확인] == 1
end

#operation_time객체 | nil

서버 응답에서 보고된 optime을 가져옵니다.

예시:

optime 을 가져옵니다.

result.operation_time

반환합니다:

  • (객체 | nil)

    optime 값입니다.

이후:

  • 2.5.0



407
408
409
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/result.rb', 줄 407

def operation_time
  first_document && first_document[OPERATION_TIME]
end

#replyProtocol::Message

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

결과에서 회신을 받습니다.

회신이 없는 경우(즉, 작업이 승인되지 않은 쓰기인 경우) nil을 반환합니다.

반환합니다:

이후:

  • 2.0.0



252
253
254
255
256
257
258
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/result.rb', 줄 252

def 회신
  만약 인정?
    답장.first
  other
    nil
  end
end

#반환 된_카운트 ⇒ 정수

이 배치에서 서버가 반환한 문서 수를 가져옵니다.

반환합니다:

  • (정수)

    반환된 문서 수입니다.

이후:

  • 2.0.0



266
267
268
269
270
271
272
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/result.rb', 줄 266

def Returned_count
  만약 인정?
    회신.number_returned
  other
    0
  end
end

#snapshot_timestamp객체

이후:

  • 2.0.0



448
449
450
451
452
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/result.rb', 줄 448

def snapshot_timestamp
  만약 doc = 회신.문서.first
    doc['cursor']&.[]('atClusterTime') || doc['atClusterTime']
  end
end

#성공했습니까?true, false

참고:

쓰기 (write) 가 승인되지 않은 경우에는 항상 true가 반환됩니다.

결과가 명령인 경우 성공으로 간주되었는지 확인합니다.

예시:

명령이 성공했습니까?

result.successful?

반환합니다:

  • (true, false)

    명령이 성공한 경우.

이후:

  • 2.0.0



287
288
289
290
291
292
293
294
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/result.rb', 줄 287

def 성공했니?
  반환 true 만약 !인정?
  만약 first_document.has_key?(확인)
    좋아? && 구문 분석기.메시지.비어 있나요?
  other
    !query_failure? && 구문 분석기.메시지.비어 있나요?
  end
end

#topology_versionTopologyVersion | nil

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

토폴로지 버전을 반환합니다.

반환합니다:

이후:

  • 2.0.0



370
371
372
373
374
375
376
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/result.rb', 줄 370

def topology_version
  하지 않는 한 정의됨?(@topology_version)
    @topology_version = first_document['topologyVersion'] &&
      토폴로지 버전.신규(first_document['topologyVersion'])
  end
  @topology_version
end

#유효성을 검사합니다!결과

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

참고:

인증 인증 가 발생하므로 쓰기 관련 오류만 확인합니다.

오류를 확인하여 결과의 유효성을 검사합니다.

예시:

결과를 검증합니다.

result.validate!

반환합니다:

  • (결과)

    검증을 통과한 경우의 결과입니다.

다음을 발생시킵니다.

이후:

  • 2.0.0



329
330
331
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/result.rb', 줄 329

def 유효성을 검사합니다!
  !성공했니? ? raise_operation_failure : self
end

#write_concern_error?부울

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

쓰기 고려 오류로 인해 작업이 실패했는지 여부입니다.

반환합니다:

  • (부울)

이후:

  • 2.0.0



444
445
446
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/result.rb', 줄 444

def write_concern_error?
  !!(first_document && first_document['writeConcernError'])
end

#write_count정수 다른 이름으로도 알려져 있음: n

서버에서 작성한 문서 수를 가져옵니다.

예시:

작성된 문서 수를 가져옵니다.

result.written_count

반환합니다:

  • (정수)

    작성된 문서 수입니다.

이후:

  • 2.0.0



387
388
389
390
391
392
393
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/result.rb', 줄 387

def write_count
  만약 인정?
    first_document[N] || 0
  other
    0
  end
end