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

update イベント

項目一覧

  • 概要
  • 説明
update

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

フィールド
タイプ
説明
_id
ドキュメント

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

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

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

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

clusterTime
タイムスタンプ

イベントに関連付けられた 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

トランザクションを一意に識別するのに役立つ数値は、 lsidと合わせて使用されます。

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

次の例では、 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

項目一覧