Docs Menu

invalidate

項目一覧

invalidate

操作によって変更ストリームが無効になった場合、 invalidateイベントが発生します。 たとえば、コレクションに対して変更ストリームが開かれ、その後削除または名前が変更された場合、 invalidateイベントが発生します。

フィールド
タイプ
説明

_id

ドキュメント

変更ストリーム イベントの識別子として機能するBSONオブジェクト。 この値は、変更ストリームを再開するときにresumeAfterパラメータのresumeTokenとして使用されます。 _idオブジェクトの形式は次のとおりです。

{
"_data" : <BinData|hex string>
}

_dataタイプは、変更ストリームの開始時または再開時にMongoDBのバージョン、および場合によっては機能の互換性バージョン(FCV)によって異なります。タイプの完全なリストについては、「 再開トークン 」を参照してください。_data

resumeTokenによる変更ストリームの再開の例については、「 変更ストリームの再開 」を参照してください。

clusterTime

タイムスタンプ

clusterTime は、イベントに関連付けられたoplogエントリのタイムスタンプです。

oplog のサイズ制限 により、マルチドキュメントトランザクションでは複数のoplogエントリが作成される場合があります。トランザクションでは、特定のoplogエントリでステージされた変更ストリームイベントは同じ clusterTime を共有します。

同じclusterTimeを持つイベントが、すべて同じトランザクションに関連するわけではありません。 一部のイベントはトランザクションにまったく関連しません。 MongoDB 8.0以降では、どの配置のイベントにも当てはまる可能性があります。 以前のバージョンでは、この動作は シャーディングされたシャーディングされたクラスター上の イベントでのみ可能でした。

単一のトランザクションのイベントを識別するには、変更ストリーム イベント ドキュメントでlsidtxnNumberの組み合わせを使用できます。

バージョン8.0で変更

operationType

string

変更通知が報告する操作のタイプ。

これらの変更イベントのinvalidateの値を返します。

wallTime

データベースの操作のサーバー日付と時刻。 wallTimeclusterTimeclusterTimeは と異なり、 はデータベース操作イベントに関連付けられた oplog エントリから取得されたタイムスタンプであるため、

バージョン 6.0 で追加。

次の例では、 invalidateイベントを示しています。

{
"_id": { <Resume Token> },
"operationType": "invalidate",
"clusterTime": <Timestamp>,
"wallTime": <ISODate>
}

コレクションで開かれている変更ストリームでは、監視対象のコレクションに影響する削除名前変更、またはdropDatabase操作が発生すると、 invalidateイベントが発生します。

監視対象のデータベースに影響するdropDatabaseイベントが発生すると、データベースで開かれている変更ストリームではinvalidateイベントが発生します。

invalidateイベントは変更ストリーム カーソルを閉じます。

無効化イベント(コレクションの削除や名前の変更など)によってストリームが閉じられた後は、 resumeAfterを使用して変更ストリームを再開することはできません。 代わりに、 startAfterを使用して、無効化イベント 後に新しい変更ストリームを開始できます。

項目一覧