クラス: Mongo::Operation::Result
- 継承:
-
オブジェクト
- オブジェクト
- Mongo::Operation::Result
- 次による拡張機能。
- 転送可能
- 次のことが含まれます。
- Enumerable
- 定義:
- build/ruby-Driver-v 2.19 /lib/mongo/operation/result.rb 、
build/ruby-Driver-v 2.19 /lib/mongo/operation/shared/result/aggregate.rb,
build/ruby-Driver-v 2.19 /lib/mongo/operation/shared/result/use_legacy_error_parser.rb
Overview
ワイヤプロトコル応答の結果ラッパー。
操作の応答は 0 または 1 です。 応答がゼロの操作のみが未確認の書込みです。他のすべての操作では 1 つの応答が生成されます。 このクラスは、操作が応答を生成しなかった場合でも(操作が成功したかどうかを確認するために)操作可能なオブジェクトを提供します(この場合は成功したと見なされます)。
既知のサブクラスを直接確認
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
名前空間で定義済み
Modules: 集計可能 、 UseLegacyErrorParser
定数の概要の削減
- CURSOR =
この定数は、プライベート API の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。
集計内のカーソル ドキュメントのフィールド名。
'cursor'.freeze
- CURSOR_ID =
この定数は、プライベート API の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。
カーソル ドキュメント内のカーソル ID フィールド。
'id'.freeze
- 最初の_バッチ =
この定数は、プライベート API の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。
カーソルの最初のバッチのフィールド名。
' firstBatch '.freeze
- Next_バッチ =
この定数は、プライベート API の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。
カーソルの次のバッチのフィールド名。
' nextBatch '.freeze
- 名前空間 =
この定数は、プライベート API の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。
カーソル ドキュメント内の 名前空間 フィールド。
'ns'.freeze
- N =
この定数は、プライベート API の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。
書込み (write) 時に更新されたドキュメントの数。
'n'.freeze
- OK =
この定数は、プライベート API の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。
結果の OK ステータス フィールド。
'ok'.freeze
- Result =
この定数は、プライベート API の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。
結果フィールド 定数。
'結果'.freeze
インスタンス属性の概要を折りたたむ
-
# connection_description = Connection_description = Server:: Description
readOnly
private
この結果が操作に実行されたサーバーの説明。
-
# connection_ global_id = オブジェクト
readOnly
private
グローバル は、この結果がである操作が実行された接続の です。
-
#replies ⇒ Array<Protocol::Message>
readOnly
private
ラップされたワイヤプロトコルの応答を返します。
インスタンス メソッドの概要を折りたたむ
-
確認済みの# = true、false
結果は確認されましたか。
-
#cluster_time ⇒ ClusterTime | nil
サーバー応答で報告されているクラスター時間を取得します。
-
#cursor_id ⇒ Integer
private
応答が確認済みの場合は、カーソル ID を取得します。
-
ドキュメント数: 配列[BSON::Document]<BSON::Document>
結果内のドキュメントを取得します。
-
各{|Each| ... } = 列挙型
応答内のドキュメントを反復処理します。
-
#エラー= Error::OperationFailure
private
この結果の処理中に発生する例外インスタンス( Error::OperationFailure クラスの)。
-
has_cursor_id? = true、false
private
結果に cursor_id が含まれているかどうか。
-
#初期化(応答、 connection_description = nil、接続_グローバル_id = nil) = nil) = 結果
コンストラクター
private
新しい結果を初期化します。
-
詳しくは、 を 検査し ますstring
結果のかなり形式された検査を取得します。
-
#ラベル= 配列
private
結果に関連付けられたエラー ラベルのセットを取得します。
-
#namespace ⇒ Nil
private
カーソルの名前空間を取得します。
-
では、 = true、false
最初のドキュメントの [ OK ] フィールドを確認します。
-
# operation_time = オブジェクト | nil
サーバー応答で報告されているoptimeを取得します。
-
#reply ⇒ Protocol::Message
private
結果から応答を取得します。
-
# returned_count = 整数
このバッチ内のサーバーによって返されたドキュメントの数を取得します。
- # snapshot_timestamp = オブジェクト
-
成功した場合= true、false
結果が コマンドの場合、成功と見なされるかどうかを判断します。
-
#topology_version ⇒ TopologyVersion | nil
private
トポロジーのバージョン。
-
#validate! ⇒ Result
private
エラーをチェックして、結果を検証します。
-
#write_concern_error = ブール値
private
操作が書込み保証 (write concern) エラーで失敗したかどうか。
-
# Written_count=整数(#n)
サーバーによって書込まれたドキュメントの数を取得します。
コンストラクターの詳細
#初期化(応答、 connection_description = nil、接続_グローバル_id = nil) = 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-v 2.19 /lib/mongo/operation/result.rb', 行105 デフォルト 初期化(応答, connection_description = nil, connection_ global_id = nil) 場合 応答 場合 応答.is_a?(配列) 場合 応答.Length != 1 発生 ArgumentError, " は . の 応答 のみをサポートするため 、 " 00000000 " end 応答 = 応答.最初に else 応答 = 応答 end ただし、 応答.is_a?(プロトコル::メッセージ) 発生 ArgumentError, " 引数は メッセージ インスタンスである必要がありますが、 # { Response . クラス } : #{ MongoDB Atlas の検索 } end @reprise = [ 応答 ] @ connection_description = connection_description @ connection_ global_id = connection_ global_id end end |
インスタンス属性の詳細
# connection_description = Server:: Description (readonly)
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
この結果である、操作が実行されたサーバーのサーバーの説明を返します。
133 134 135 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/operation/result.rb', 行133 デフォルト connection_description @ connection_description end |
# connection_ global_id =オブジェクト(読み取り専用)
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
この結果が対象となる接続で操作が実行された接続のグローバルを返します。
139 140 141 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/operation/result.rb', 行139 デフォルト connection_ global_id @ connection_ global_id end |
#replies ⇒ Array<Protocol::Message> (readonly)
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
ラップされたワイヤプロトコルの応答を返します。
127 128 129 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/operation/result.rb', 行127 デフォルト 応答 @reprise end |
インスタンス メソッドの詳細
確認済みの# = true 、 false
MongoDB 2.6以降では、ドライバーはすべての書込み操作に書込みコマンドを使用するため、すべての書込みが確認されます。 2.4以下では、 コマンドの後に GLE が実行されていれば、結果が確認されます。 含めない場合、応答は指定されません。 応答が常に提供されるため、読み取りは常に true を返します。
結果は確認されましたか。
157 158 159 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/operation/result.rb', 行157 デフォルト 確認済み? !!@reprise end |
#cluster_time ⇒ ClusterTime | nil
サーバー応答で報告されているクラスター時間を取得します。
バージョン2.9.0での変更 : この属性は、BSON::Document のサブクラスである ClusterTime のインスタンスになりました。 以前は BSON::Document のインスタンスでした。
424 425 426 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/operation/result.rb', 行424 デフォルト cluster_time first_document & & ClusterTime[first_document['$clusterTime']] end |
#cursor_id ⇒ Integer
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
カーソル ID が0の場合は、サーバー上にカーソルがないことを示します。
応答が確認済みの場合は、カーソル ID を取得します。
181 182 183 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/operation/result.rb', 行181 デフォルト cursor_id 確認済み? ? 応答.last.cursor_id : 0 end |
ドキュメント 数 : 配列[BSON::Document]<BSON::Document>
結果内のドキュメントを取得します。
205 206 207 208 209 210 211 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/operation/result.rb', 行205 デフォルト ドキュメント 場合 確認済み? 応答.flat_map(&:documents) else [] end end |
各{|Each| ... } =列挙型
応答内のドキュメントを反復処理します。
226 227 228 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/operation/result.rb', 行226 デフォルト 各(&ブロック) ドキュメント.各(&ブロック) end |
#エラー= Error::OperationFailure
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
この結果の処理中に発生する例外インスタンス( Error::OperationFailure クラスの)。
このメソッドは、結果が成功しない場合にのみ呼び出す必要があります。
341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/operation/result.rb', 行341 デフォルト エラー @error ||= エラー::OperationFailure.新着情報( parser., 自己, コード: parser.コード, Code_name: parser.Code_name, write_concern_error_document: parser.write_concern_error_document, write_concern_error_code: parser.write_concern_error_code, write_concern_error_code_name: parser.write_concern_error_code_name, write_concern_error_ labels parser.write_concern_error_ labels, labels parser.labels, wtimeout: parser.wtimeout, connection_description: connection_description, ドキュメント: parser.ドキュメント, server_message: parser., ) end |
has_cursor_id? = true 、 false
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
結果に cursor_id が含まれているかどうか
166 167 168 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/operation/result.rb', 行166 デフォルト has_cursor_id? 確認済み? & & 応答.last.respond_to?(:cursor_id) end |
詳しくは、 を 検査しstring ます
結果のかなり形式された検査を取得します。
239 240 241 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/operation/result.rb', 行239 デフォルト 検査する " # は 、{10 }0 #{ object_id } } Documents = # { { Documents } } > " end |
#ラベル=配列
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
結果に関連付けられたエラー ラベルのセットを取得します。
437 438 439 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/operation/result.rb', 行437 デフォルト labels @ labels ||= parser.labels end |
#namespace ⇒ Nil
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
カーソルの名前空間を取得します。 メソッドは、サーバー応答内に 'n' がある結果クラスで定義する必要があります。
192 193 194 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/operation/result.rb', 行192 デフォルト namespace nil end |
では、 = true 、 false
最初のドキュメントの [ OK ] フィールドを確認します。
305 306 307 308 309 310 311 312 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/operation/result.rb', 行305 デフォルト ok? # first_document[ OK ] は浮動小数点数であり、サーバーは次を返すことができます は、 32の BSON 、 64の BSON 、または BSON double として承認されています。 # 数値1は浮動小数点数で完全に表現可能であるため、 # 1.0 == 1は常に正しく実行されるようになりました #(サーバーが成功の結果として1以外の結果を返すまで、つまり ) first_document[OK] == 1 end |
# operation_time =オブジェクト | nil
サーバー応答で報告されているoptimeを取得します。
407 408 409 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/operation/result.rb', 行407 デフォルト operation_time first_document & & first_document[OPERATION_TIME] end |
#reply ⇒ Protocol::Message
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
結果から応答を取得します。
応答がない場合は nil を返します(つまり、操作が確認されていない書込みでした)。
252 253 254 255 256 257 258 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/operation/result.rb', 行252 デフォルト 応答 場合 確認済み? 応答.最初に else nil end end |
# returned_count =整数
このバッチ内のサーバーによって返されたドキュメントの数を取得します。
266 267 268 269 270 271 272 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/operation/result.rb', 行266 デフォルト returned_count 場合 確認済み? 応答.number_returned else 0 end end |
# snapshot_timestamp =オブジェクト
448 449 450 451 452 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/operation/result.rb', 行448 デフォルト 場合 doc = 応答.ドキュメント.最初に doc['cursor']&.[]('atClusterTime') || doc['atClusterTime'] end end |
成功した場合 = true 、 false
書込み (write) が確認されていない場合は、常に true が返されます。
結果が コマンドの場合、成功と見なされるかどうかを判断します。
287 288 289 290 291 292 293 294 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/operation/result.rb', 行287 デフォルト 成功した場合 return true 場合 !確認済み? 場合 first_document.has_keys_keys(OK) ok? & & parser..空の場合 else !query_failure? & & parser..空の場合 end end |
#topology_version ⇒ TopologyVersion | nil
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
トポロジー バージョンを返します。
370 371 372 373 374 375 376 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/operation/result.rb', 行370 デフォルト topic ただし、 定義済み?(@topology_version) @topology_version = first_document['topologyVersion'] & & TopologyVersion.新着情報(first_document['topologyVersion']) end @topology_version end |
#validate! ⇒ Result
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
これは、結果が作成される前に認証が接続レベルで処理され、認証エラーが発生するため、書き込みによるエラーのみをチェックします。
エラーをチェックして、結果を検証します。
329 330 331 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/operation/result.rb', 行329 デフォルト validate! !成功した場合 ? resume_operation_failure : 自己 end |
#write_concern_error =ブール値
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
操作が書込み保証 (write concern) エラーで失敗したかどうか。
444 445 446 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/operation/result.rb', 行444 デフォルト write_concern_error !!(first_document & & first_document[' writeConcernError ']) end |
# Written_count=整数別名: n
サーバーによって書込まれたドキュメントの数を取得します。
387 388 389 390 391 392 393 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/operation/result.rb', 行387 デフォルト Written_count 場合 確認済み? first_document[N] || 0 else 0 end end |