클래스: Mongo::Operation::Result
- 상속:
-
객체
- 객체
- 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인 유일한 작업은 승인되지 않은 쓰기입니다. 다른 모든 작업은 하나의 회신을 생성합니다. 이 클래스는 작업이 응답을 생성하지 않은 경우(예: 성공한 것으로 가정)에도 작업(예: 작업 성공 여부 확인)할 수 있는 객체를 제공합니다.
직접 알려진 하위 클래스
Aggregate::Result, CollectionsInfo::Result, Delete::BulkResult, Delete::Result, Explain::Result, Find::Result, GetMore::Result, Indexes::Result, Insert::BulkResult, Insert::Result, ListCollections::Result, MapReduce::Result, ParallelScan::Result, Update::BulkResult, Update::Result, UsersInfo::Result
네임스페이스 아래에 정의됨
모듈: 애그리게이션 가능, UseLegacyErrorParser
상수 요약 접기
- CURSOR =
이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
애그리게이션에서 커서 문서의 필드 이름입니다.
'cursor'.동결
- CURSOR_ID =
이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
커서 문서의 커서 ID 필드입니다.
'ID'.동결
- FIRST_BACH =
이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
커서의 첫 번째 배치에 대한 필드 이름입니다.
'firstBatch'.동결
- NEXT_BACH =
이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
커서의 다음 배치에 대한 필드 이름입니다.
'NextBatch'.동결
- NAMESPACE =
이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
커서 문서 의 네임스페이스 필드 입니다.
'ns'.동결
- N =
이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
쓰기에서 업데이트된 문서 수입니다.
'n'.동결
- 확인 =
이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
결과의 ok 상태 필드입니다.
'ok'.동결
- 결과 =
이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
결과 필드 상수입니다.
'결과'.동결
인스턴스 속성 요약 접기
-
#connection_description ⇒ Server::Description
읽기 전용
비공개
이 결과의 대상인 작업이 수행된 서버 에 대한 서버 설명입니다.
-
#connection_global_id ⇒ 객체
읽기 전용
비공개
전역은 이 결과에 대한 작업이 수행된 연결입니다.
-
#replies ⇒ Array<Protocol::Message>
읽기 전용
비공개
래핑된 유선 프로토콜 응답.
인스턴스 메서드 요약 접기
-
#승인되었나요? ⇒ 참, 거짓
결과가 인정되나요?
-
#cluster_time ⇒ ClusterTime | nil
서버 응답에서 보고된 클러스터 시간을 가져옵니다.
-
#cursor_id ⇒ 정수
비공개
응답이 승인되면 커서 ID를 가져옵니다.
-
문서 # 개 ⇒ Array<BSON::Document>
결과에서 문서를 가져옵니다.
-
#각 {|Each| ... } ⇒ 열거자
회신의 문서를 반복합니다.
-
#오류 ⇒ 오류::OperationFailure
비공개
이 결과를 처리하는 동안 발생할 예외 인스턴스(Error::OperationFailure 클래스)입니다.
-
#has_cursor_id? ⇒ 참, 거짓
비공개
결과에 cursor_id가 포함되는지 여부입니다.
-
#initialize(replies, connection_description = nil, connection_global_id = nil) ⇒ 결과
생성자
비공개
새 결과를 초기화합니다.
-
#검사 ⇒ string
결과에 대한 예쁜 형식의 검사를 가져옵니다.
-
#레이블 ⇒ 배열
비공개
결과와 관련된 오류 레이블 집합을 가져옵니다.
-
#네임스페이스 ⇒ Nil
비공개
커서의 네임스페이스를 가져옵니다.
-
#네? ⇒ 참, 거짓
첫 번째 문서의 확인 필드를 확인합니다.
-
#operation_time ⇒ 객체 | nil
서버 응답에서 보고된 optime을 가져옵니다.
-
#reply ⇒ Protocol::Message
비공개
결과에서 회신을 받습니다.
-
#반환 된_카운트 ⇒ 정수
이 배치에서 서버가 반환한 문서 수를 가져옵니다.
- #snapshot_timestamp ⇒ 객체
-
#성공적인? ⇒ 참, 거짓
결과가 명령인 경우 성공으로 간주되었는지 확인합니다.
-
#topology_version ⇒ TopologyVersion | nil
비공개
토폴로지 버전입니다.
-
#validate! ⇒ Result
비공개
오류를 확인하여 결과의 유효성을 검사합니다.
-
#write_concern_error? ⇒ 부울
비공개
쓰기 고려 오류로 인해 작업이 실패했는지 여부입니다.
-
#write_count ⇒ 정수 (동의어: #n)
서버에서 작성한 문서 수를 가져옵니다.
생성자 세부 정보
#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.
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_description ⇒ Server::Description (읽기 전용)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
이 결과의 대상이 되는 작업이 수행된 서버에 대한 MongoDB Server 설명을 반환합니다.
133 134 135 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/result.rb', 줄 133 def connection_description @connection_description end |
#connection_global_id ⇒ 객체 (읽기 전용)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
반환값 글로벌은 이 결과에 대한 작업이 수행된 연결에 대한 것입니다.
139 140 141 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/result.rb', 줄 139 def connection_global_id @connection_global_id end |
#replies ⇒ Array<Protocol::Message> (readonly)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
래핑된 유선 프로토콜 응답을 반환합니다.
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를 반환합니다.
결과가 인정되나요?
157 158 159 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/result.rb', 줄 157 def 인정? !!@replies end |
#cluster_time ⇒ ClusterTime | nil
서버 응답에서 보고된 클러스터 시간을 가져옵니다.
버전 2.9.0 에서 변경됨: 이 속성은 BSON::Document의 하위 클래스인 ClusterTime의 인스턴스가 되었습니다. 이전에는 BSON::Document의 인스턴스였습니다.
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를 가져옵니다.
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>
결과에서 문서를 가져옵니다.
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| ... } ⇒ 열거자
회신의 문서를 반복합니다.
226 227 228 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/result.rb', 줄 226 def 각(&차단) 문서.각(&차단) end |
#오류 ⇒ 오류::OperationFailure
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
이 결과를 처리하는 동안 발생할 예외 인스턴스(Error::OperationFailure 클래스)입니다.
이 메서드는 결과가 성공하지 못한 경우에만 호출해야 합니다.
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: 구문 분석기., ) end |
#has_cursor_id? ⇒ true, false
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
결과에 cursor_id가 포함되는지 여부
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
결과에 대한 예쁜 형식의 검사를 가져옵니다.
239 240 241 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/result.rb', 줄 239 def 검사 "#<#{self.class.name}:0x#{object_id} 문서=#{문서}>" end |
#레이블 ⇒ 배열
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
결과와 관련된 오류 레이블 집합을 가져옵니다.
437 438 439 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/result.rb', 줄 437 def labels @labels ||= 구문 분석기.labels end |
#네임스페이스 ⇒ Nil
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
커서의 네임스페이스를 가져옵니다. 이 메서드는 서버 응답에서 'ns'가 포함된 결과 클래스에서 정의되어야 합니다.
192 193 194 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/result.rb', 줄 192 def namespace nil end |
#네? ⇒ true, false
첫 번째 문서의 확인 필드를 확인합니다.
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을 가져옵니다.
407 408 409 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/result.rb', 줄 407 def operation_time first_document && first_document[OPERATION_TIME] end |
#reply ⇒ Protocol::Message
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
결과에서 회신을 받습니다.
회신이 없는 경우(즉, 작업이 승인되지 않은 쓰기인 경우) nil을 반환합니다.
252 253 254 255 256 257 258 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/result.rb', 줄 252 def 회신 만약 인정? 답장.first other nil end end |
#반환 된_카운트 ⇒ 정수
이 배치에서 서버가 반환한 문서 수를 가져옵니다.
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 ⇒ 객체
448 449 450 451 452 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/result.rb', 줄 448 def 만약 doc = 회신.문서.first doc['cursor']&.[]('atClusterTime') || doc['atClusterTime'] end end |
#성공했습니까? ⇒ true, false
쓰기 (write) 가 승인되지 않은 경우에는 항상 true가 반환됩니다.
결과가 명령인 경우 성공으로 간주되었는지 확인합니다.
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_version ⇒ TopologyVersion | nil
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
토폴로지 버전을 반환합니다.
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의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
인증 인증 가 발생하므로 쓰기 관련 오류만 확인합니다.
오류를 확인하여 결과의 유효성을 검사합니다.
329 330 331 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/operation/result.rb', 줄 329 def 유효성을 검사합니다! !성공했니? ? raise_operation_failure : self end |
#write_concern_error? ⇒ 부울
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
쓰기 고려 오류로 인해 작업이 실패했는지 여부입니다.
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
서버에서 작성한 문서 수를 가져옵니다.
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 |