クラス: Mongo::Operation::Result

継承:
オブジェクト
  • オブジェクト
すべて表示
次による拡張機能。
転送可能
次のことが含まれます。
Enumerable
定義:
lib/mongo/操作/result.rb

、lib/mongo/操作/shared/result/aggregate.rb、lib/mongo/操作/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

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

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

コンストラクターの詳細

# 初期化(応答、接続_description = nil、接続_グローバル_id = nil、context: 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。

  • context 操作::Context | nil (デフォルトはnil

    この結果が生成されたときにアクティブだったコンテキスト。

以来

  • 2.0.0

[ソースを表示]

107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# ファイル 'lib/mongo/ 操作/result.rb' は、107 行

デフォルト 初期化(応答, connection_description = nil, connection_ global_id = nil, context: nil, 接続: nil)
  @context = context

  場合 応答
    場合 応答.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
    @ connection = 接続
  end
end

インスタンス属性の詳細

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

以来

  • 2.0.0


152
153
154
# ファイル 'lib/mongo/ 操作/result.rb' は、152 行

デフォルト 接続
  @ connection
end

# connection_description = Server:: Description (readonly)

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

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

次の値を返します。

以来

  • 2.0.0


138
139
140
# ファイル 'lib/mongo/ 操作/result.rb' は、138 行

デフォルト connection_description
  @ connection_description
end

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

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

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

次の値を返します。

  • オブジェクト

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

以来

  • 2.0.0


144
145
146
# ファイル 'lib/mongo/ 操作/result.rb' は、144 行

デフォルト connection_ global_id
  @ connection_ global_id
end

#context = 操作::Context | nil(読み取り専用)

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

この結果が生成されたときにアクティブだった操作コンテキスト(存在する場合)を返します。

次の値を返します。

  • Operation::Context | nil

    この結果が生成されたときにアクティブだった操作コンテキスト(存在する場合)。

以来

  • 2.0.0


150
151
152
# ファイル 'lib/mongo/ 操作/result.rb' は、150 行

デフォルト context
  @context
end

#repliesArray<Protocol::Message> (readonly)

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

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

次の値を返します。

  • (Array<Protocol::Message>)

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

以来

  • 2.0.0


132
133
134
# ファイル 'lib/mongo/ 操作/result.rb' は、132 行

デフォルト 応答
  @reprise
end

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

確認済みの# = truefalse

注:

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

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

次の値を返します。

  • truefalse

    結果が確認された場合。

以来

  • 2.0.0

[ソースを表示]

170
171
172
# ファイル 'lib/mongo/ 操作/result.rb' は、170 行

デフォルト 確認済み?
  !!@reprise
end

#cluster_timeClusterTime | nil

サーバー応答で報告されているクラスター時間を取得します。

バージョン2.9.0での変更 : この属性は、BSON::Document のサブクラスである ClusterTime のインスタンスになりました。 以前は BSON::Document のインスタンスでした。

例:

クラスター時間を取得します。

result.cluster_time

次の値を返します。

  • (ClusterTime | nil)

    クラスター時間ドキュメント。

以来

  • 2.5.0

[ソースを表示]

437
438
439
# ファイル 'lib/mongo/ 操作/result.rb' は、437 行

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

#cursor_idInteger

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

注:

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

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

例:

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

result.cursor_id

次の値を返します。

  • (整数)

    カーソル ID。

以来

  • 2.0.0

[ソースを表示]

194
195
196
# ファイル 'lib/mongo/ 操作/result.rb' は、194 行

デフォルト cursor_id
  確認済み? ? 応答.last.cursor_id : 0
end

ドキュメント 数 : 配列[BSON::Document]<BSON::Document>

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

例:

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

result.documents

次の値を返します。

  • 配列<BSON::Document>

    ドキュメント。

以来

  • 2.0.0

[ソースを表示]

218
219
220
221
222
223
224
# ファイル 'lib/mongo/ 操作/result.rb' は、218 行

デフォルト ドキュメント
  場合 確認済み?
    応答.flat_map(&:documents)
  else
    []
  end
end

{|Each| ... } =列挙型

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

例:

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

result.each do |doc|
  p doc
end

生成パラメータ:

  • BSON::Document

    結果のドキュメント。

次の値を返します。

  • 列挙型

    列挙型。

以来

  • 2.0.0

[ソースを表示]

239
240
241
# ファイル 'lib/mongo/ 操作/result.rb' は、239 行

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

# エラー = Error::OperationFailure::ファミリー

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

この結果の処理中に発生する例外インスタンス( Error::OperationFailure::ファミリー)。

このメソッドは、結果が成功しない場合にのみ呼び出す必要があります。

次の値を返します。

以来

  • 2.0.0

[ソースを表示]

354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
# ファイル 'lib/mongo/ 操作/result.rb' は、354 行

デフォルト エラー
  @error ||= operation_failure_Class.新着情報(
    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

[ソースを表示]

179
180
181
# ファイル 'lib/mongo/ 操作/result.rb' は、179 行

デフォルト has_cursor_id?
  確認済み? & & 応答.last.respond_to?(:cursor_id)
end

詳しくは、 を 検査しstring ます

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

例:

結果を調べます。

result.inspect

次の値を返します。

  • ( string )

    検査。

以来

  • 2.0.0

[ソースを表示]

252
253
254
# ファイル 'lib/mongo/ 操作/result.rb' は、252 行

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

#ラベル=配列

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

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

例:

ラベルを取得します。

result.labels

次の値を返します。

  • 配列

    labels ラベルのセット。

以来

  • 2.7.0

[ソースを表示]

450
451
452
# ファイル 'lib/mongo/ 操作/result.rb' は、450 行

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

#namespaceNil

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

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

次の値を返します。

  • (Nil)

以来

  • 2.0.0

[ソースを表示]

205
206
207
# ファイル 'lib/mongo/ 操作/result.rb' は、205 行

デフォルト namespace
  nil
end

では、 = truefalse

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

例:

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

result.ok?

次の値を返します。

  • truefalse

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

以来

  • 2.1.0

[ソースを表示]

318
319
320
321
322
323
324
325
# ファイル 'lib/mongo/ 操作/result.rb' は、318 行

デフォルト 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

[ソースを表示]

420
421
422
# ファイル 'lib/mongo/ 操作/result.rb' は、420 行

デフォルト operation_time
  first_document & & first_document[OPERATION_TIME]
end

#replyProtocol::Message

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

結果から応答を取得します。

応答がない場合は nil を返します(つまり、操作が確認されていない書込みでした)。

次の値を返します。

以来

  • 2.0.0

[ソースを表示]

265
266
267
268
269
270
271
# ファイル 'lib/mongo/ 操作/result.rb' は、265 行

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

# returned_count =整数

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

次の値を返します。

  • (整数)

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

以来

  • 2.0.0

[ソースを表示]

279
280
281
282
283
284
285
# ファイル 'lib/mongo/ 操作/result.rb' は、279 行

デフォルト returned_count
  場合 確認済み?
    応答.number_returned
  else
    0
  end
end

# snapshot_timestamp =オブジェクト

以来

  • 2.0.0

[ソースを表示]

461
462
463
464
465
# ファイル 'lib/mongo/ 操作/result.rb' は、461 行

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

成功した場合 = truefalse

注:

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

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

例:

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

result.successful?

次の値を返します。

  • truefalse

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

以来

  • 2.0.0

[ソースを表示]

300
301
302
303
304
305
306
307
# ファイル 'lib/mongo/ 操作/result.rb' は、300 行

デフォルト 成功した場合
  return true 場合 !確認済み?
  場合 first_document.has_keys_keys(OK)
    ok? & & parser.メッセージ.空の場合
  else
    !query_failure? & & parser.メッセージ.空の場合
  end
end

#topology_versionTopologyVersion | nil

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

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

次の値を返します。

以来

  • 2.0.0

[ソースを表示]

383
384
385
386
387
388
389
# ファイル 'lib/mongo/ 操作/result.rb' は、383 行

デフォルト topic
  ただし、 定義済み?(@topology_version)
    @topology_version = first_document['topologyVersion'] & &
      TopologyVersion.新着情報(first_document['topologyVersion'])
  end
  @topology_version
end

#validate!Result

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

注:

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

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

例:

結果を検証します。

result.validate!

次の値を返します。

  • 結果

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

次の値が発生します。

以来

  • 2.0.0

[ソースを表示]

342
343
344
# ファイル 'lib/mongo/ 操作/result.rb' は、342 行

デフォルト validate!
  !成功した場合 ? resume_operation_failure : 自己
end

#write_concern_error =ブール値

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

操作が書込み保証 (write concern) エラーで失敗したかどうか。

次の値を返します。

  • ブール値

以来

  • 2.0.0

[ソースを表示]

457
458
459
# ファイル 'lib/mongo/ 操作/result.rb' は、457 行

デフォルト write_concern_error
  !!(first_document & & first_document[' writeConcernError '])
end

# Written_count=整数別名: n

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

例:

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

result.written_count

次の値を返します。

  • (整数)

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

以来

  • 2.0.0

[ソースを表示]

400
401
402
403
404
405
406
# ファイル 'lib/mongo/ 操作/result.rb' は、400 行

デフォルト Written_count
  場合 確認済み?
    first_document[N] || 0
  else
    0
  end
end