클래스: Mongo::Operation::Result
- 상속:
-
객체
- 객체
- Mongo::Operation::Result
- 확장자:
- 전달 가능
- 다음을 포함합니다.
- Enumerable
- 다음에 정의됨:
- lib/ Mongo/operation/result.rb,
lib/ Mongo/operation/shared/result/aggregatable.rb
개요
유선 프로토콜 응답에 대한 결과 래퍼입니다.
작업에는 0개 또는 1개의 응답이 있습니다. 응답이 0인 유일한 작업은 승인되지 않은 쓰기입니다. 다른 모든 작업은 하나의 회신을 생성합니다. 이 클래스는 작업이 응답을 생성하지 않은 경우(예: 성공한 것으로 가정)에도 작업(예: 작업 성공 여부 확인)할 수 있는 객체를 제공합니다.
직접 알려진 하위 클래스
네임스페이스 아래에 정의됨
모듈: 집계 가능
상수 요약 접기
- CURSOR =
이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
애그리게이션에서 커서 문서의 필드 이름입니다.
'cursor'- CURSOR_ID =
이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
커서 문서의 커서 ID 필드입니다.
'id'- FIRST_BACH =
이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
커서의 첫 번째 배치에 대한 필드 이름입니다.
'firstBatch'- NEXT_BACH =
이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
커서의 다음 배치에 대한 필드 이름입니다.
'NextBatch'- NAMESPACE =
이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
커서 문서 의 네임스페이스 필드 입니다.
'ns'- N =
이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
쓰기에서 업데이트된 문서 수입니다.
'n'- 확인 =
이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
결과의 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.
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
# 파일 'lib/ Mongo/operation/result.rb', 104줄 def 초기화(답장, connection_description = nil, connection_global_id = nil, 컨텍스트: nil, 연결: nil) @context = 컨텍스트 반환 하지 않는 한 답장 만약 답장.is_a?(배열) 올리다 ArgumentError, "주어진 #{replies.length}"에서 회신은 하나만 지원됩니다(또는 0개) . 만약 답장.분량 != 1 회신 = 답장.first other 회신 = 답장 end 하지 않는 한 회신.is_a?(protocol::메시지) 올리다 ArgumentError, "인수는 메시지 인스턴스여야 하지만 #{회신.클래스}: #{회신.검사}" end @replies = [ 회신 ] @connection_description = connection_description @connection_global_id = connection_global_id @connection = 연결 end |
인스턴스 속성 세부 정보
#연결 ⇒ 객체(읽기 전용)
149 150 151 |
# 파일 'lib/ Mongo/operation/result.rb', 149줄 def 연결 @connection end |
#connection_description ⇒ Server::Description (읽기 전용)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
이 결과의 대상이 되는 작업이 수행된 서버에 대한 MongoDB Server 설명을 반환합니다.
135 136 137 |
# 파일 'lib/ Mongo/operation/result.rb', 135줄 def connection_description @connection_description end |
#connection_global_id ⇒ 객체 (읽기 전용)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
반환값 글로벌은 이 결과에 대한 작업이 수행된 연결에 대한 것입니다.
141 142 143 |
# 파일 'lib/ Mongo/operation/result.rb', 141줄 def connection_global_id @connection_global_id end |
#context ⇒ Operation::Context | nil (읽기 전용)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
이 결과가 생성될 때 활성화된 작업 컨텍스트(있는 경우)를 반환합니다.
147 148 149 |
# 파일 'lib/ Mongo/operation/result.rb', 147줄 def 컨텍스트 @context end |
#replies ⇒ Array<Protocol::Message> (readonly)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
래핑된 유선 프로토콜 응답을 반환합니다.
129 130 131 |
# 파일 'lib/ Mongo/operation/result.rb', 129줄 def 답장 @replies end |
인스턴스 메서드 세부 정보
#승인되었나요? ⇒ true, false
결과가 인정되나요?
161 162 163 |
# 파일 'lib/ Mongo/operation/result.rb', 161줄 def 인정? !!@replies end |
#cluster_time ⇒ ClusterTime | nil
서버 응답에서 보고된 클러스터 시간을 가져옵니다.
버전 2.9.0 에서 변경됨: 이 속성은 BSON::Document의 하위 클래스인 ClusterTime의 인스턴스가 되었습니다. 이전에는 BSON::Document의 인스턴스였습니다.
427 428 429 |
# 파일 'lib/ Mongo/operation/result.rb', 427줄 def cluster_time first_document && ClusterTime[first_document['$clusterTime']] end |
#cursor_id ⇒ 정수
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
커서 ID가 0 이면 서버에 커서가 없음을 나타냅니다.
응답이 승인되면 커서 ID를 가져옵니다.
185 186 187 |
# 파일 'lib/ Mongo/operation/result.rb', 185줄 def cursor_id 인정? ? 답장.last.cursor_id : 0 end |
문서 # 개 ⇒ Array<BSON::Document>
결과에서 문서를 가져옵니다.
209 210 211 212 213 214 215 |
# 파일 'lib/ Mongo/operation/result.rb', 209줄 def 문서 만약 인정? 답장.flat_map(&:documents) other [] end end |
#각 {|Each| ... } ⇒ 열거자
회신의 문서를 반복합니다.
230 231 232 |
# 파일 'lib/ Mongo/operation/result.rb', 230줄 def 각(&차단) 문서.각(&차단) end |
#error ⇒ Error::OperationFailure::Family
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
이 결과를 처리 동안 발생할 예외 인스턴스 (Error::OperationFailure::Family)입니다.
이 메서드는 결과가 성공하지 못한 경우에만 호출해야 합니다.
344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 |
# 파일 'lib/ Mongo/operation/result.rb', 344줄 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가 포함되는지 여부
170 171 172 |
# 파일 'lib/ Mongo/operation/result.rb', 170줄 def has_cursor_id? 인정? && 답장.last.response_to?(:cursor_id) end |
#검사 ⇒ string
결과에 대한 예쁜 형식의 검사를 가져옵니다.
243 244 245 |
# 파일 'lib/ Mongo/operation/result.rb', 243줄 def 검사 "#<#{self.class.name}:0x#{object_id} 문서=#{문서}>" end |
#레이블 ⇒ 배열
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
결과와 관련된 오류 레이블 집합을 가져옵니다.
440 441 442 |
# 파일 'lib/ Mongo/operation/result.rb', 440줄 def labels @labels ||= 구문 분석기.labels end |
#네임스페이스 ⇒ Nil
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
커서 의 네임스페이스 가져옵니다. 이 메서드는 서버 응답에서 'ns'가 포함된 결과 클래스에서 정의되어야 합니다.
196 197 198 |
# 파일 'lib/ Mongo/operation/result.rb', 196줄 def namespace nil end |
#네? ⇒ true, false
첫 번째 문서의 확인 필드 확인합니다.
308 309 310 311 312 313 314 315 |
# 파일 'lib/ Mongo/operation/result.rb', 308줄 def 좋아? # first_document[OK]는 부동 소수점이며, 서버는 다음을 반환할 수 있습니다. # ok를 BSON int32, BSON int64 또는 BSON double로 지정합니다. # 숫자 1 은 부동 소수점으로 정확히 표현할 수 있으므로 # 1.0 == 1 는 항상 올바르게 수행됩니다. # (서버가 성공하여 1 이외의 것을 반환할 때까지, 즉) first_document[확인] == 1 end |
#operation_time ⇒ 객체 | nil
서버 응답에서 보고된 optime을 가져옵니다.
410 411 412 |
# 파일 'lib/ Mongo/operation/result.rb', 410줄 def operation_time first_document && first_document[OPERATION_TIME] end |
#reply ⇒ Protocol::Message
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
결과에서 회신을 받습니다.
회신이 없는 경우(즉, 작업이 승인되지 않은 쓰기인 경우) nil을 반환합니다.
256 257 258 259 260 |
# 파일 'lib/ Mongo/operation/result.rb', 256줄 def 회신 반환 하지 않는 한 인정? 답장.first end |
#반환 된_카운트 ⇒ 정수
이 배치에서 서버가 반환한 문서 수를 가져옵니다.
268 269 270 271 272 273 274 |
# 파일 'lib/ Mongo/operation/result.rb', 268줄 def Returned_count 만약 인정? 회신.number_returned other 0 end end |
#snapshot_timestamp ⇒ 객체
451 452 453 454 455 |
# 파일 'lib/ Mongo/operation/result.rb', 451줄 def 반환 하지 않는 한 doc = 회신.문서.first doc['cursor']&.[]('atClusterTime') || doc['atClusterTime'] end |
#성공했습니까? ⇒ true, false
쓰기 (write) 가 승인되지 않은 경우에는 항상 true가 반환됩니다.
결과가 명령인 경우 성공으로 간주되었는지 확인합니다.
289 290 291 292 293 294 295 296 297 |
# 파일 'lib/ Mongo/operation/result.rb', 289줄 def 성공했니? 반환 true 하지 않는 한 인정? 만약 first_document.has_key?(확인) 좋아? && 구문 분석기..비어 있나요? other !query_failure? && 구문 분석기..비어 있나요? end end |
#topology_version ⇒ TopologyVersion | nil
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
토폴로지 버전을 반환합니다.
373 374 375 376 377 378 379 |
# 파일 'lib/ Mongo/operation/result.rb', 373줄 def topology_version 하지 않는 한 정의됨?(@topology_version) @topology_version = first_document['topologyVersion'] && 토폴로지 버전.신규(first_document['topologyVersion']) end @topology_version end |
#유효성을 검사합니다! ⇒ 결과
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
인증 인증 가 발생하므로 쓰기 관련 오류만 확인합니다.
오류를 확인하여 결과의 유효성을 검사합니다.
332 333 334 |
# 파일 'lib/ Mongo/operation/result.rb', 332줄 def 유효성을 검사합니다! 성공했니? ? self : raise_operation_failure end |
#write_concern_error? ⇒ 부울
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
쓰기 고려 오류로 인해 작업이 실패했는지 여부입니다.
447 448 449 |
# 파일 'lib/ Mongo/operation/result.rb', 447줄 def write_concern_error? !!(first_document && first_document['writeConcernError']) end |
#write_count ⇒ 정수 다른 이름으로도 알려져 있음: n
서버에서 작성한 문서 수를 가져옵니다.
390 391 392 393 394 395 396 |
# 파일 'lib/ Mongo/operation/result.rb', 390줄 def write_count 만약 인정? first_document[N] || 0 other 0 end end |