Docs Menu
Docs Home
/
MongoDB Manual
/

Change Events

On this page

  • Operation Types
  • Resume Token
  • Expanded Events

Change streams watch collections, databases, or deployments for changes.

When a change occurs on a watched resource, the change stream returns a change event notification document, with information on the operation and the changes it made.

Event
Description
create

Occurs on the creation of a collection.

Requires that you set the showExpandedEvents option to true.

New in version 6.0.

Occurs on the creation of indexes on the collection.

Requires that you set the showExpandedEvents option to true.

New in version 6.0.

Occurs when a document is removed from the collection.
Occurs when a collection is dropped from a database.
Occurs when a database is dropped.

Occurs when an index is dropped from the collection.

Requires that you set the showExpandedEvents option to true.

New in version 6.0.

Occurs when an operation adds documents to a collection.
Occurs when an operation renders the change stream invalid.

Occurs when a collection is modified.

Requires that you set the showExpandedEvents option to true.

New in version 6.0.

Occurs when a shard key is modified.

New in version 6.1.

Occurs when a collection is renamed.
Occurs when an update operation removes a document from a collection and replaces it with a new document.

Occurs when the shard key for a collection and the distribution of data changes.

Requires that you set the showExpandedEvents option to true.

New in version 6.1: (Also available in 6.0.14)

Occurs when a collection is sharded.

Requires that you set the showExpandedEvents option to true.

New in version 6.0.

Occurs when an operation updates a document in a collection.

Each change event includes an _id field, which contain a document. This document can serve as the resume token when starting a change stream.

New in version 6.0.

Starting in MongoDB 6.0, change streams support change notifications for DDL events, like the createIndexes and dropIndexes events. To include expanded events in a change stream, create the change stream cursor using the showExpandedEvents option.

For example:

let cur = db.names.aggregate( [ {
$changeStream: {
showExpandedEvents: true
}
}
] )
cur.next()

Back

Production Recommendations