変更ストリームでは、コレクション、データベース、または配置の変更が監視されます。
監視対象のリソースに変更が発生すると、実施された操作と変更についての情報を盛り込んだ変更イベント通知ドキュメントが変更ストリームによって返されます。
操作の種類
イベント | 説明 |
|---|---|
ドキュメントがコレクションから削除されたときに発生します。 | |
コレクションがデータベースから削除されたときに発生します。 | |
データベースが削除されたときに発生します。 | |
操作によってコレクションにドキュメントが追加されたときに発生します。 | |
操作によって変更ストリームが無効になったときに発生します。 | |
シャードキーが変更されたときに発生します。 6.1バージョン の新機能。: | |
コレクション名が変更されたときに発生します。 | |
アップデート操作によってドキュメントがコレクションから削除され、新しいドキュメントに置き換えられるときに発生します。 | |
コレクションのシャードキーとデータの分散状況が変更されたときに発生します。 showExpandedEvents オプションを バージョン6.1 の新機能(6.0.14 でも利用可能)。 | |
操作によってコレクション内のドキュメントがアップデートされたときに発生します。 |
注意
サーバーは、置換による表現の方がより簡潔な場合、更新操作を置換イベントとして返すことがあります。更新操作をリッスンする場合は、置換操作もリッスンしてください。
再開トークン
各変更イベントには _idフィールドが含まれます。このフィールドは変更ストリームイベントの識別子として機能するBSONオブジェクトです。変更ストリームをresumeTokenによって再開する例については、変更ストリームの再開を参照してください。
拡張イベント
6.0バージョン の新機能。:
変更ストリームは、createIndexes や dropIndexes などのデータ定義言語(DDL)イベント通知をサポートしています。展開されたイベントを含めるには、showExpandedEvents オプションを指定して変更ストリームのカーソルを開きます。
以下に例を挙げます。
let cur = db.names.watch( [ ], { showExpandedEvents: true } ) cur.next()
let cur = db.names.aggregate( [ { $changeStream: { showExpandedEvents: true } } ] ) cur.next()