Navigation
This version of the documentation is archived and no longer supported.

replace Event

Summary

replace

A replace event occurs when an update operation removes a document from a collection and replaces it with a new document, such as when the replaceOne method is called.

Description

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.

New in version 4.0.

documentKey document

Document that contains the _id value of the document created or modified by the CRUD operation.

For sharded collections, this field also displays the full shard key for the document. The _id field is not repeated if it is already a part of the shard key.

fullDocument document The new document created by the operation.
lsid document

The identifier for the session associated with the transaction.

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

New in version 4.0.

ns document

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

ns.coll string

The name of the collection where the event occurred.

ns.db string

The name of the database where the event occurred.

operationType string

The type of operation that the change notification reports.

Returns a value of replace for these change events.

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.

New in version 4.0.

Examples

The following example illustrates a replace event:

{
   "_id": { <Resume Token> },
   "operationType": "replace",
   "clusterTime": <Timestamp>,
   "ns": {
      "db": "engineering",
      "coll": "users"
   },
   "documentKey": {
      "_id": ObjectId("599af247bb69cd89961c986d")
   },
   "fullDocument": {
      "_id": ObjectId("599af247bb69cd89961c986d"),
      "userName": "alice123",
      "name": "Alice"
   }
}

A replace operation uses the update command, and consists of two stages:

  • Delete the original document with the documentKey and
  • Insert the new document using the same documentKey

The fullDocument of a replace event represents the document after the insert of the replacement document.

←   rename Event update Event  →