クラス: 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 つの応答が生成されます。 このクラスは、操作が応答を生成しなかった場合でも(操作が成功したかどうかを確認するために)操作可能なオブジェクトを提供します(この場合は成功したと見なされます)。

以来

  • 2.0.0

名前空間で定義済み

Modules: 集計可能 、 UseLegacyErrorParser

定数の概要の削減

CURSOR =

この定数は、プライベート API の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。

集計内のカーソル ドキュメントのフィールド名。

以来

  • 2.2.0

'cursor'.freeze
CURSOR_ID =

この定数は、プライベート API の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。

カーソル ドキュメント内のカーソル ID フィールド。

以来

  • 2.2.0

'id'.freeze
最初の_バッチ =

この定数は、プライベート API の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。

カーソルの最初のバッチのフィールド名。

以来

  • 2.2.0

' firstBatch '.freeze
Next_バッチ =

この定数は、プライベート API の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。

カーソルの次のバッチのフィールド名。

以来

  • 2.2.0

' nextBatch '.freeze
名前空間 =

この定数は、プライベート API の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。

カーソル ドキュメント内の 名前空間 フィールド。

以来

  • 2.2.0

'ns'.freeze
N =

この定数は、プライベート API の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。

書込み (write) 時に更新されたドキュメントの数。

以来

  • 2.0.0

'n'.freeze
OK =

この定数は、プライベート API の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。

結果の OK ステータス フィールド。

以来

  • 2.0.0

'ok'.freeze
Result =

この定数は、プライベート API の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。

結果フィールド 定数。

以来

  • 2.2.0

'結果'.freeze

インスタンス属性の概要を折りたたむ

インスタンス メソッドの概要を折りたたむ

コンストラクターの詳細

#初期化(応答、 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.

パラメーター:

  • 応答 (Protocol::Message | Array<Protocol::Message> | nil)

    ワイヤプロトコルは応答します。

  • connection_description Server:: Description | nil (デフォルトはnil

    この結果の操作を実行したサーバーの説明。 このパラメーターは既存の 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-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 の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

この結果である、操作が実行されたサーバーのサーバーの説明を返します。

次の値を返します。

以来

  • 2.0.0



133
134
135
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/operation/result.rb', 行133

デフォルト connection_description
  @ connection_description
end

# connection_ global_id =オブジェクト(読み取り専用)

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

この結果が対象となる接続で操作が実行された接続のグローバルを返します。

次の値を返します。

  • オブジェクト

    グローバル は、この結果がである操作が実行された接続の です。

以来

  • 2.0.0



139
140
141
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/operation/result.rb', 行139

デフォルト connection_ global_id
  @ connection_ global_id
end

#repliesArray<Protocol::Message> (readonly)

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

ラップされたワイヤプロトコルの応答を返します。

次の値を返します。

  • (Array<Protocol::Message>)

    ラップされたワイヤプロトコルの応答を返します。

以来

  • 2.0.0



127
128
129
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/operation/result.rb', 行127

デフォルト 応答
  @reprise
end

インスタンス メソッドの詳細

確認済みの# = truefalse

注:

MongoDB 2.6以降では、ドライバーはすべての書込み操作に書込みコマンドを使用するため、すべての書込みが確認されます。 2.4以下では、 コマンドの後に GLE が実行されていれば、結果が確認されます。 含めない場合、応答は指定されません。 応答が常に提供されるため、読み取りは常に true を返します。

結果は確認されましたか。

次の値を返します。

  • truefalse

    結果が確認された場合。

以来

  • 2.0.0



157
158
159
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/operation/result.rb', 行157

デフォルト 確認済み?
  !!@reprise
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-v 2.19 /lib/mongo/operation/result.rb', 行424

デフォルト cluster_time
  first_document & & ClusterTime[first_document['$clusterTime']]
end

#cursor_idInteger

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

注:

カーソル ID が0の場合は、サーバー上にカーソルがないことを示します。

応答が確認済みの場合は、カーソル ID を取得します。

例:

カーソル ID を取得します。

result.cursor_id

次の値を返します。

  • (整数)

    カーソル ID。

以来

  • 2.0.0



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>

結果内のドキュメントを取得します。

例:

ドキュメントを取得します。

result.documents

次の値を返します。

  • 配列<BSON::Document>

    ドキュメント。

以来

  • 2.0.0



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| ... } =列挙型

応答内のドキュメントを反復処理します。

例:

ドキュメントを反復処理します。

result.each do |doc|
  p doc
end

生成パラメータ:

  • BSON::Document

    結果のドキュメント。

次の値を返します。

  • 列挙型

    列挙型。

以来

  • 2.0.0



226
227
228
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/operation/result.rb', 行226

デフォルト (&ブロック)
  ドキュメント.(&ブロック)
end

#エラー= Error::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-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.server_message,
  )
end

has_cursor_id? = truefalse

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

結果に cursor_id が含まれているかどうか

次の値を返します。

  • truefalse

    結果に cursor_id が含まれている場合。

以来

  • 2.0.0



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 ます

結果のかなり形式された検査を取得します。

例:

結果を調べます。

result.inspect

次の値を返します。

  • ( string )

    検査。

以来

  • 2.0.0



239
240
241
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/operation/result.rb', 行239

デフォルト 検査する
  " # は 、{10 }0 #{ object_id } } Documents = # { { Documents } } > "
end

#ラベル=配列

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

結果に関連付けられたエラー ラベルのセットを取得します。

例:

ラベルを取得します。

result.labels

次の値を返します。

  • 配列

    labels ラベルのセット。

以来

  • 2.7.0



437
438
439
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/operation/result.rb', 行437

デフォルト labels
  @ labels ||= parser.labels
end

#namespaceNil

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

カーソルの名前空間を取得します。 メソッドは、サーバー応答内に 'n' がある結果クラスで定義する必要があります。

次の値を返します。

  • (Nil)

以来

  • 2.0.0



192
193
194
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/operation/result.rb', 行192

デフォルト namespace
  nil
end

では、 = truefalse

最初のドキュメントの [ OK ] フィールドを確認します。

例:

[ OK ] フィールドを確認します。

result.ok?

次の値を返します。

  • truefalse

    コマンドが OK を返した場合、。

以来

  • 2.1.0



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を取得します。

例:

optimeを取得します。

result.operation_time

次の値を返します。

  • ( Object | nil )

    optime値。

以来

  • 2.5.0



407
408
409
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/operation/result.rb', 行407

デフォルト 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-v 2.19 /lib/mongo/operation/result.rb', 行252

デフォルト 応答
  場合 確認済み?
    応答.最初に
  else
    nil
  end
end

# returned_count =整数

このバッチ内のサーバーによって返されたドキュメントの数を取得します。

次の値を返します。

  • (整数)

    返されたドキュメントの数。

以来

  • 2.0.0



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 =オブジェクト

以来

  • 2.0.0



448
449
450
451
452
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/operation/result.rb', 行448

デフォルト snapshot_timestamp
  場合 doc = 応答.ドキュメント.最初に
    doc['cursor']&.[]('atClusterTime') || doc['atClusterTime']
  end
end

成功した場合 = truefalse

注:

書込み (write) が確認されていない場合は、常に true が返されます。

結果が コマンドの場合、成功と見なされるかどうかを判断します。

例:

コマンドは成功しましたか。

result.successful?

次の値を返します。

  • truefalse

    コマンドが成功した場合、。

以来

  • 2.0.0



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_versionTopologyVersion | nil

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

トポロジー バージョンを返します。

次の値を返します。

以来

  • 2.0.0



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 の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

注:

これは、結果が作成される前に認証が接続レベルで処理され、認証エラーが発生するため、書き込みによるエラーのみをチェックします。

エラーをチェックして、結果を検証します。

例:

結果を検証します。

result.validate!

次の値を返します。

  • 結果

    検証に合格した場合は、その結果。

次の値が発生します。

以来

  • 2.0.0



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) エラーで失敗したかどうか。

次の値を返します。

  • ブール値

以来

  • 2.0.0



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

サーバーによって書込まれたドキュメントの数を取得します。

例:

書き込まれたドキュメントの数を取得します。

result.written_count

次の値を返します。

  • (整数)

    書込まれたドキュメントの数。

以来

  • 2.0.0



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