Docs Menu
Docs Home
/
MongoDBマニュアル
/ /

update イベント

項目一覧

  • 概要
  • 説明
update

updateイベントは、操作によってコレクション内のドキュメントがアップデートされたときに発生します。

フィールド
タイプ
説明

_id

ドキュメント

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

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

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

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

clusterTime

タイムスタンプ

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

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

シャーディングされたクラスターでは、同じclusterTimeを持つイベントがすべて同じトランザクションに関連付けられない場合があります。 一部のイベントはトランザクションにまったく関連しません。

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

documentKey

ドキュメント

CRUD操作によって作成または変更されたドキュメントの_id値を含むドキュメント。

シャーディングされたコレクションの場合、このフィールドにはドキュメントの完全なシャードキーも表示されます。 _idフィールドは、すでにシャードキーの一部である場合は繰り返されません。

fullDocument

ドキュメント

CRUD操作によって作成または変更されたドキュメント。

このフィールドは、fullDocumentupdateLookup に設定して変更ストリームを構成した場合にのみ表示されます。updateLookup を使用して変更ストリームを構成する場合、フィールドは 更新操作によって変更されたドキュメントの、過半数がコミットした最新のバージョンを表します。元の更新操作から完全なドキュメント検索までの間に、過半数がコミットした他の操作によってドキュメントが変更された場合、ドキュメントは update Description で説明されている変更と異なる場合があります。

詳細については、「更新操作のための完全なドキュメントの検索 」を参照してください。

lsid

ドキュメント

トランザクションに関連付けられたセッションの識別子。

操作がマルチドキュメントトランザクションの一部である場合にのみ存在します。

ns

ドキュメント

イベントの影響を受ける名前空間(データベースと または コレクション)。

ns.coll

string

イベントが発生したコレクションの名前。

ns.db

string

イベントが発生したデータベースの名前。

operationType

string

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

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

updateDescription

ドキュメント

更新操作によって更新または削除されたフィールドを説明するドキュメント。

updateDescription.
removedFields

配列

アップデート操作によって削除されたフィールドの配列。

updateDescription.
truncatedArrays

配列

次の 1 つ以上のステージを使用して、パイプラインベースの更新で実行された配列の切り捨てを記録するドキュメントの配列。

配列全体が置き換えられた場合、切り捨ては update Description.updateFields で報告されます。

updateDescription.
truncatedArrays.
field

string

切り捨てられたフィールドの名前。

updateDescription.
truncatedArrays.
newSize

integer

切り捨てられた配列内の要素の数。

updateDescription.
updatedFields

ドキュメント

アップデート操作によって変更されたフィールドに対応するキーを持つドキュメント。 各フィールドの値は、新しい値を生成した操作ではなく、それらのフィールドの新しい値に対応します。

txnNumber

NumberLong

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

{
"_id": { <Resume Token> },
"operationType": "update",
"clusterTime": <Timestamp>,
"ns": {
"db": "engineering",
"coll": "users"
},
"documentKey": {
"_id": ObjectId("58a4eb4a30c75625e00d2820")
},
"updateDescription": {
"updatedFields": {
"email": "alice@10gen.com"
},
"removedFields": ["phoneNumber"],
"truncatedArrays": [ {
"field" : "vacation_time",
"newSize" : 36
} ]
}
}

次の例では、 fullDocument : updateLookupオプションを使用して開かれた変更ストリームのupdateイベントを示しています。

{
"_id": { <Resume Token> },
"operationType": "update",
"clusterTime": <Timestamp>,
"ns": {
"db": "engineering",
"coll": "users"
},
"documentKey": {
"_id": ObjectId("58a4eb4a30c75625e00d2820")
},
"updateDescription": {
"updatedFields": {
"email": "alice@10gen.com"
},
"removedFields": ["phoneNumber"],
"truncatedArrays": [ {
"field" : "vacation_time",
"newSize" : 36
} ]
},
"fullDocument": {
"_id": ObjectId("58a4eb4a30c75625e00d2820"),
"name": "Alice",
"userName": "alice123",
"email": "alice@10gen.com",
"team": "replication"
}
}

fullDocumentドキュメントは、更新されたドキュメントの過半数がコミットした最新のバージョンを表します。 fullDocumentドキュメントは、アップデート操作とドキュメント検索の間に発生する、過半数がコミットした操作のインターリーブ数に応じて、アップデート操作の時点でのドキュメントと異なる場合があります。

戻る

replace

項目一覧