Docs Menu
Docs Home
/
MongoDB Manual
/ /

invalidate

On this page

  • Summary
  • Description
  • Example
invalidate

An invalidate event occurs when an operation renders the change stream invalid. For example, a change stream opened on a collection that was later dropped or renamed would cause an invalidate 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.

On sharded clusters, events with the same clusterTime may not all relate to the same transaction. Some events don't relate to a transaction at all.

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

operationType
string

The type of operation that the change notification reports.

Returns a value of invalidate for these change events.

The following example illustrates an invalidate event:

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

Change streams opened on collections raise an invalidate event when a drop, rename, or dropDatabase operation occurs that affects the watched collection.

Change streams opened on databases raise an invalidate event when a dropDatabase event occurs that affects the watched database.

invalidate events close the change stream cursor.

You cannot use resumeAfter to resume a change stream after an invalidate event (for example, a collection drop or rename) closes the stream. Instead, you can use startAfter to start a new change stream after an invalidate event.

Back

insert