클래스: Mongo::Operation::Result
- 상속:
-
객체
- 객체
- Mongo::Operation::Result
- 확장자:
- 전달 가능
- 다음을 포함합니다.
- Enumerable
- 다음에 정의됨:
- lib/ Mongo/operation/result.rb,
lib/ Mongo/operation/shared/result/aggregatable.rb,
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 ⇒ 객체
읽기 전용
비공개
전역은 이 결과에 대한 작업이 수행된 연결입니다.
-
#context ⇒ Operation::Context | nil
읽기 전용
비공개
이 결과가 생성될 때 활성화된 작업 컨텍스트(있는 경우)입니다.
-
#replies ⇒ Array<Protocol::Message>
읽기 전용
비공개
래핑된 유선 프로토콜 응답.
인스턴스 메서드 요약 접기
-
#승인되었나요? ⇒ 참, 거짓
결과가 인정되나요?
-
#cluster_time ⇒ ClusterTime | nil
서버 응답에서 보고된 클러스터 시간을 가져옵니다.
-
#cursor_id ⇒ 정수
비공개
응답이 승인되면 커서 ID를 가져옵니다.
-
문서 # 개 ⇒ Array<BSON::Document>
결과에서 문서를 가져옵니다.
-
#각 {|Each| ... } ⇒ 열거자
회신의 문서를 반복합니다.
-
#error ⇒ Error::OperationFailure::Family
비공개
이 결과를 처리 동안 발생할 예외 인스턴스 (Error::OperationFailure::Family)입니다.
-
#has_cursor_id? ⇒ 참, 거짓
비공개
결과에 cursor_id가 포함되는지 여부입니다.
-
#initialize(replies, connection_description = nil, connection_global_id = nil, context: nil, connection: 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, context: nil, connection: nil) ⇒ 결과
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
새 결과를 초기화합니다.
승인되지 않은 쓰기의 경우 회신으로 nil을 전달합니다.
For all other operations, replies must be a Protocol::Message instance or an array containing a single Protocol::Message instance.
107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
# 파일 'lib/ Mongo/operation/result.rb', 107줄 def 초기화(답장, connection_description = nil, connection_global_id = nil, 컨텍스트: nil, 연결: nil) @context = 컨텍스트 만약 답장 만약 답장.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 @connection = 연결 end end |
인스턴스 속성 세부 정보
#연결 ⇒ 객체(읽기 전용)
152 153 154 |
# 파일 'lib/ Mongo/operation/result.rb', 152줄 def 연결 @connection end |
#connection_description ⇒ Server::Description (읽기 전용)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
이 결과의 대상이 되는 작업이 수행된 서버에 대한 MongoDB Server 설명을 반환합니다.
138 139 140 |
# 파일 'lib/ Mongo/operation/result.rb', 138줄 def connection_description @connection_description end |
#connection_global_id ⇒ 객체 (읽기 전용)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
반환값 글로벌은 이 결과에 대한 작업이 수행된 연결에 대한 것입니다.
144 145 146 |
# 파일 'lib/ Mongo/operation/result.rb', 144줄 def connection_global_id @connection_global_id end |
#context ⇒ Operation::Context | nil (읽기 전용)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
이 결과가 생성될 때 활성화된 작업 컨텍스트(있는 경우)를 반환합니다.
150 151 152 |
# 파일 'lib/ Mongo/operation/result.rb', 150줄 def 컨텍스트 @context end |
#replies ⇒ Array<Protocol::Message> (readonly)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
래핑된 유선 프로토콜 응답을 반환합니다.
132 133 134 |
# 파일 'lib/ Mongo/operation/result.rb', 132줄 def 답장 @replies end |
인스턴스 메서드 세부 정보
#승인되었나요? ⇒ true, false
MongoDB 2.6 이상에서는 드라이버가 모든 쓰기 작업에 쓰기 명령을 사용하므로 모든 쓰기가 승인됩니다. 2.4 이하에서는 명령 후에 GLE가 실행된 경우 결과가 승인됩니다. 그렇지 않은 경우에는 응답이 지정되지 않습니다. 여기에서는 항상 응답이 제공되므로 읽기는 항상 true를 반환합니다.
결과가 인정되나요?
170 171 172 |
# 파일 'lib/ Mongo/operation/result.rb', 170줄 def 인정? !!@replies end |
#cluster_time ⇒ ClusterTime | nil
서버 응답에서 보고된 클러스터 시간을 가져옵니다.
버전 2.9.0 에서 변경됨: 이 속성은 BSON::Document의 하위 클래스인 ClusterTime의 인스턴스가 되었습니다. 이전에는 BSON::Document의 인스턴스였습니다.
437 438 439 |
# 파일 'lib/ Mongo/operation/result.rb', 437줄 def cluster_time first_document && ClusterTime[first_document['$clusterTime']] end |
#cursor_id ⇒ 정수
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
커서 ID가 0 이면 서버에 커서가 없음을 나타냅니다.
응답이 승인되면 커서 ID를 가져옵니다.
194 195 196 |
# 파일 'lib/ Mongo/operation/result.rb', 194줄 def cursor_id 인정? ? 답장.last.cursor_id : 0 end |
문서 # 개 ⇒ Array<BSON::Document>
결과에서 문서를 가져옵니다.
218 219 220 221 222 223 224 |
# 파일 'lib/ Mongo/operation/result.rb', 218줄 def 문서 만약 인정? 답장.flat_map(&:documents) other [] end end |
#각 {|Each| ... } ⇒ 열거자
회신의 문서를 반복합니다.
239 240 241 |
# 파일 'lib/ Mongo/operation/result.rb', 239줄 def 각(&차단) 문서.각(&차단) end |
#error ⇒ Error::OperationFailure::Family
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
이 결과를 처리 동안 발생할 예외 인스턴스 (Error::OperationFailure::Family)입니다.
이 메서드는 결과가 성공하지 못한 경우에만 호출해야 합니다.
354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 |
# 파일 'lib/ Mongo/operation/result.rb', 354줄 def 오류 @error ||= operation_failure_class.신규( 구문 분석기., 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가 포함되는지 여부
179 180 181 |
# 파일 'lib/ Mongo/operation/result.rb', 179줄 def has_cursor_id? 인정? && 답장.last.response_to?(:cursor_id) end |
#검사 ⇒ string
결과에 대한 예쁜 형식의 검사를 가져옵니다.
252 253 254 |
# 파일 'lib/ Mongo/operation/result.rb', 252줄 def 검사 "#<#{self.class.name}:0x#{object_id} 문서=#{문서}>" end |
#레이블 ⇒ 배열
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
결과와 관련된 오류 레이블 집합을 가져옵니다.
450 451 452 |
# 파일 'lib/ Mongo/operation/result.rb', 450줄 def labels @labels ||= 구문 분석기.labels end |
#네임스페이스 ⇒ Nil
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
커서의 네임스페이스를 가져옵니다. 이 메서드는 서버 응답에서 'ns'가 포함된 결과 클래스에서 정의되어야 합니다.
205 206 207 |
# 파일 'lib/ Mongo/operation/result.rb', 205줄 def namespace nil end |
#네? ⇒ true, false
첫 번째 문서의 확인 필드를 확인합니다.
318 319 320 321 322 323 324 325 |
# 파일 'lib/ Mongo/operation/result.rb', 318줄 def 좋아? # first_document[OK]는 부동 소수점이며, 서버는 다음을 반환할 수 있습니다. # ok를 BSON int32, BSON int64 또는 BSON double로 지정합니다. # 숫자 1 은 부동 소수점으로 정확히 표현할 수 있으므로 # 1.0 == 1 는 항상 올바르게 수행됩니다. # (서버가 성공하여 1 이외의 것을 반환할 때까지, 즉) first_document[확인] == 1 end |
#operation_time ⇒ 객체 | nil
서버 응답에서 보고된 optime을 가져옵니다.
420 421 422 |
# 파일 'lib/ Mongo/operation/result.rb', 420줄 def operation_time first_document && first_document[OPERATION_TIME] end |
#reply ⇒ Protocol::Message
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
결과에서 회신을 받습니다.
회신이 없는 경우(즉, 작업이 승인되지 않은 쓰기인 경우) nil을 반환합니다.
265 266 267 268 269 270 271 |
# 파일 'lib/ Mongo/operation/result.rb', 265줄 def 회신 만약 인정? 답장.first other nil end end |
#반환 된_카운트 ⇒ 정수
이 배치에서 서버가 반환한 문서 수를 가져옵니다.
279 280 281 282 283 284 285 |
# 파일 'lib/ Mongo/operation/result.rb', 279줄 def Returned_count 만약 인정? 회신.number_returned other 0 end end |
#snapshot_timestamp ⇒ 객체
461 462 463 464 465 |
# 파일 'lib/ Mongo/operation/result.rb', 461줄 def 만약 doc = 회신.문서.first doc['cursor']&.[]('atClusterTime') || doc['atClusterTime'] end end |
#성공했습니까? ⇒ true, false
쓰기 (write) 가 승인되지 않은 경우에는 항상 true가 반환됩니다.
결과가 명령인 경우 성공으로 간주되었는지 확인합니다.
300 301 302 303 304 305 306 307 |
# 파일 'lib/ Mongo/operation/result.rb', 300줄 def 성공했니? 반환 true 만약 !인정? 만약 first_document.has_key?(확인) 좋아? && 구문 분석기..비어 있나요? other !query_failure? && 구문 분석기..비어 있나요? end end |
#topology_version ⇒ TopologyVersion | nil
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
토폴로지 버전을 반환합니다.
383 384 385 386 387 388 389 |
# 파일 'lib/ Mongo/operation/result.rb', 383줄 def topology_version 하지 않는 한 정의됨?(@topology_version) @topology_version = first_document['topologyVersion'] && 토폴로지 버전.신규(first_document['topologyVersion']) end @topology_version end |
#유효성을 검사합니다! ⇒ 결과
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
인증 인증 가 발생하므로 쓰기 관련 오류만 확인합니다.
오류를 확인하여 결과의 유효성을 검사합니다.
342 343 344 |
# 파일 'lib/ Mongo/operation/result.rb', 342줄 def 유효성을 검사합니다! !성공했니? ? raise_operation_failure : self end |
#write_concern_error? ⇒ 부울
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
쓰기 고려 오류로 인해 작업이 실패했는지 여부입니다.
457 458 459 |
# 파일 'lib/ Mongo/operation/result.rb', 457줄 def write_concern_error? !!(first_document && first_document['writeConcernError']) end |
#write_count ⇒ 정수 다른 이름으로도 알려져 있음: n
서버에서 작성한 문서 수를 가져옵니다.
400 401 402 403 404 405 406 |
# 파일 'lib/ Mongo/operation/result.rb', 400줄 def write_count 만약 인정? first_document[N] || 0 other 0 end end |