Docs Menu
Docs Home
/
MongoDB Manual
/ /

modify Event

On this page

  • Summary
  • Description
  • Example
modify

New in version 6.0.

A modify event occurs when a collection is modified, such as when the collMod command adds or remove options from a collection or view. This event is received only if the change stream has the showExpandedEvents option set to true.

Note

Disambiguation

To learn more about events that occur when individual documents are updated, see the update event.

Field
Type
Description
_id
Document

A BSON object which serves as an identifier for the change stream event. This value is used as the resumeToken for the resumeAfter parameter when resuming a change stream. The _id object has the following form:

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

The _data type depends on the MongoDB versions and, in some cases, the feature compatibility version (fCV) at the time of the change stream's opening or resumption. See Resume Tokens for the full list of _data types.

For an example of resuming a change stream by resumeToken, see Resume a Change Stream.

clusterTime
Timestamp

The timestamp from the oplog entry associated with the event.

Change stream event notifications associated with a multi-document transaction all have the same clusterTime value: the time when the transaction was committed.

Events with the same clusterTime may not all relate to the same transaction. Some events don't relate to a transaction at all. Starting in MongoDB 8.0, this may be true for events on any deployment. In previous versions, this behavior was possible only for events on a sharded cluster.

To identify events for a single transaction, you can use the combination of lsid and txnNumber in the change stream event document.

Changed in version 8.0.

collectionUUID
UUID

If the change occurred on a collection, collectionUUID indicates the collection's UUID. If the change occurred on a view, collectionUUID doesn't exist.

New in version 6.0.

lsid
document

The identifier for the session associated with the transaction.

Only present if the operation is part of a multi-document transaction.

ns
document

The namespace (database and or collection) affected by the event.

ns.db
string

The name of the database where the event occurred.

ns.coll
string

The name of the collection where the event occurred.

operationDescription
document

Additional information on the change operation.

This document and its subfields only appears when the change stream uses expanded events.

New in version 6.0.

operationDescription.
index
document

The index that was modified.

New in version 6.0.

operationDescription.
indexes
array
An array of documents listing the indexes that were changed by the operation.
operationType
string

The type of operation that the change notification reports.

Returns a value of modify for these change events.

stateBeforeChange
document

Document shows collection and index options before the operation changed them.

stateBeforeChange.
collectionOptions
document

Document shows collection options before the operation changed them.

stateBeforeChange.
indexOptions
document

Document shows index options before the operation changed them.

txnNumber
NumberLong

Together with the lsid, a number that helps uniquely identify a transction.

Only present if the operation is part of a multi-document transaction.

wallTime

The server date and time of the database operation. wallTime differs from clusterTime in that clusterTime is a timestamp taken from the oplog entry associated with the database operation event.

New in version 6.0.

The following example shows a modify event:

{
"_id": { <ResumeToken> },
"operationType": "modify",
"clusterTime": Timestamp({ t: 1654878543, i: 1 }),
"collectionUUID": UUID("47d6baac-eeaa-488b-98ae-893f3abaaf25"),
"wallTime": ISODate("2022-06-10T16:29:03.704Z"),
"ns": {
"db": "test",
"coll": "authors" },
"operationDescription": {
"index": {
"name": "age_1",
"hidden": true
}
},
"stateBeforeChange": {
"collectionOptions": {
"uuid": UUID("47d6baac-eeaa-488b-98ae-893f3abaaf25")
},
"indexOptions": {
"hidden": false
}
}
}

Back

invalidate