クラス: Mongo::Collection::View::changeStream
- 次のことが含まれます。
- 再試行可能
- 定義:
- build/ruby-Driver-v 2.19 /lib/mongo/collection/view/change_stream.rb 、
build/ruby-Driver-v 2.19 /lib/mongo/collection/view/change_stream/retryable.rb
Overview
サーバー バージョン3.6以降でのみ使用できます。
ChangeStreams は JRuby では正しく動作しません。 github.com/jruby/jruby/issues/{1 4212 。 つまり、JRuby はバックグラウンドの環境ごとのスレッドの列挙型にある を早期に評価するため、変更ストリームで #next を呼び出すと、getMores がバックグラウンドのループで呼び出されます。
集計フレームワークの '$changeStream' パイプライン ステージに関する動作を提供します。 このステージを指定すると、ユーザーは特定のコレクションまたはデータベースに対するすべての変更に対して通知を送信するようリクエストできます。
名前空間で定義済み
Modules: 再試行可能
定数の概要の削減
- FULL_DOCUMENT_DEFAULT =
fullDocument オプションのデフォルト値を返します。
'デフォルト'.freeze
- DATABASE =
変更ストリームがコレクションだけでなくデータベース全体の変更をリッスンする必要があることを示すために使用されます。
:database
- CLUSTER =
変更ストリームがコレクションだけでなくクラスター全体の変更をリッスンする必要があることを示すために使用されます。
:cluster
集計から継承された定数
Loggableに含まれる定数
Explainableに含まれる定数
説明可能::ALL_PLANS_EXECUTION 、説明可能:EXECUTION_STATS 、説明可能::QUERY_PLANNER
インスタンス属性の概要を折りたたむ
-
#options ⇒ BSON::Document
readOnly
変更ストリーム オプション。
集計から継承される属性
イテラブルに含まれる属性
インスタンス メソッドの概要を折りたたむ
-
閉じる= nil
変更ストリームを閉じます。
-
#閉じました= true、false
変更ストリームは閉じましたか。
-
各{|Each| ... } = 列挙型
変更ストリームによって返されたドキュメントを反復処理します。
-
#初期化(ビュー、パイプライン、changes_for、オプション ={}) = ChangeStream
コンストラクター
指定されたコレクション ビュー、パイプライン、オプションの変更ストリームを初期化します。
-
詳しくは、 を 検査し ますstring
検査で使用するための書式設定された string を取得します。
-
#resume_token ⇒ BSON::Document | nil
ストリームが自動再開するために使用する再開トークン(存在する場合)を返します。
- # to_enum =オブジェクト
-
#try_next ⇒ BSON::Document | nil
変更ストリームから 1 つのドキュメントが使用可能な場合は、返します。
集計から継承されたメソッド
#allow_disk_use 、 #explain 、 #write?
再試行可能な に含まれるメソッド
#read_worker 、 #select_server 、 #write_worker
Loggableに含まれるメソッド
#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger
Explainableに含まれるメソッド
イテラブルに含まれるメソッド
コンストラクターの詳細
#初期化(ビュー、パイプライン、changes_for、オプション ={}) = ChangeStream
指定されたコレクション ビュー、パイプライン、オプションの変更ストリームを初期化します。
127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection/view/change_stream.rb', 行127 デフォルト 初期化(表示, パイプライン, Changes_for, = {}) @view = 表示 @changes_for = Changes_for @change_stream_filters = パイプライン & & パイプライン.dup @options = & & .dup.freeze @start_ after = @options[:start_ after] # 変更ストリームによって追跡される再開トークン。のみ使用 : カーソルがない場合、またはカーソル再開トークンがない場合 @resume_token = @start_ after || @options[:resume_ after] create_cursor! 変更ストリームを再開すると、異なるパラメーターが送信されます 最初のクエリを送信したときと比較して @resumeing = true end |
インスタンス属性の詳細
#オプション= BSON::Document (読み取り専用)
変更ストリーム オプションを返します。
61 62 63 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection/view/change_stream.rb', 行61 デフォルト @options end |
インスタンス メソッドの詳細
閉じる= nil
このメソッドは、変更ストリームで使用されるカーソルを閉じようとします。これにより、サーバー側の変更ストリームのカーソルも閉じられます。 このメソッドは、サーバー側カーソルを閉じるときに発生するエラーを無視します。
変更ストリームを閉じます。
237 238 239 240 241 242 243 244 245 246 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection/view/change_stream.rb', 行237 デフォルト 閉じる ただし、 閉じましたか begin @cursor.閉じる ヘルプ エラー::OperationFailure, エラー::SocketError, エラー::SocketTimeoutError, エラー::MissingConnection # ignore end @cursor = nil end end |
#閉じました= true 、 false
変更ストリームは閉じましたか?
256 257 258 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection/view/change_stream.rb', 行256 デフォルト 閉じましたか @cursor.nil? end |
各{|Each| ... } =列挙型
変更ストリームによって返されたドキュメントを反復処理します。
このメソッドは、再開可能なエラーのエラーごとに 1 回再試行します(2 回連続でエラーが発生すると 2 番目のエラーが発生し、 から回復されたエラーはエラー数を 0 にリセットします)。
161 162 163 164 165 166 167 168 169 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection/view/change_stream.rb', 行161 デフォルト 各 発生 反復の停止.新着情報 場合 閉じましたか ループ 行う ドキュメント = try_next ノードの数 ドキュメント 場合 ドキュメント end ヘルプ 反復の停止 return 自己 end |
詳しくは、 を 検査しstring ます
検査で使用するための書式設定された string を取得します。
268 269 270 271 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection/view/change_stream.rb', 行268 デフォルト 検査する " #< Mongo::Collection::View:changeStream: 0 x #{ object_id } filters= #{ @change_stream_filters } " + " options= #{ @options } resume_token= #{ resume_token } > " end |
#resume_token ⇒ BSON::Document | nil
ストリームが自動再開するために使用する再開トークン(存在する場合)を返します。
282 283 284 285 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection/view/change_stream.rb', 行282 デフォルト resume_token cursor_resume_token = @cursor.resume_token 場合 @cursor cursor_resume_token || @resume_token end |
# to_enum =オブジェクト
213 214 215 216 217 218 219 220 221 222 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection/view/change_stream.rb', 行213 デフォルト to_enum 列挙 = スーパー 列挙.送信(:instance_variable_set, '@obj', 自己) クラス < 列挙 デフォルト try_next @obj.try_next end end 列挙 end |
#try_next ⇒ BSON::Document | nil
変更ストリームから 1 つのドキュメントが使用可能な場合は、返します。
再開可能なエラーで 1 回再試行します。
変更ストリームが閉じられている場合は、 stopIteration が発生します。
このメソッドは最大_await_time_ms ミリ秒までサーバーからの変更を待機し、変更が受信されない場合は nil を返します。
183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection/view/change_stream.rb', 行183 デフォルト try_next 発生 反復の停止.新着情報 場合 閉じましたか begin doc = @cursor.try_next ヘルプ mongo::エラー => e 場合 !e.change_stream_resumeable? 発生 end # 初期集計を再実行します。 # ここでエラーが発生すると反復が停止し、中断されます。 # メソッド。 # カーソルの再開トークンを使用できるように保存する # が新しいカーソルを作成する @resume_token = @cursor.resume_token 閉じる create_cursor! RETRY end # 各ドキュメントに _id があることを確認する必要があります。そのため、 # 使用する再開トークンを 持っている 場合 doc & & doc['_id'].nil? 発生 エラー::MissingResumeToken end doc end |