• Public
  • Public/Protected
  • All

Interface ChangeStreamDocument<TSchema>

Type parameters


  • ChangeStreamDocument




_id: InferIdType<TSchema>

The id functions as an opaque token for use when resuming an interrupted change stream.

Optional documentKey

documentKey?: InferIdType<TSchema>

Only present for ops of type ‘insert’, ‘update’, ‘replace’, and ‘delete’.

For unsharded collections this contains a single field, _id, with the value of the _id of the document updated. For sharded collections, this will contain all the components of the shard key in order, followed by the _id if the _id isn’t part of the shard key.

Optional fullDocument

fullDocument?: TSchema

Always present for operations of type ‘insert’ and ‘replace’. Also present for operations of type ‘update’ if the user has specified ‘updateLookup’ in the ‘fullDocument’ arguments to the ‘$changeStream’ stage.

For operations of type ‘insert’ and ‘replace’, this key will contain the document being inserted, or the new version of the document that is replacing the existing document, respectively.

For operations of type ‘update’, this key will contain a copy of the full version of the document from some point after the update occurred. If the document was deleted since the updated happened, it will be null.


ns: { coll: string; db: string }

Contains two fields: “db” and “coll” containing the database and collection name in which the change happened.

Type declaration

  • coll: string
  • db: string


operationType: "insert" | "update" | "replace" | "delete" | "invalidate" | "drop" | "dropDatabase" | "rename"

Describes the type of operation represented in this change notification.

Optional updateDescription

updateDescription?: UpdateDescription<TSchema>

Only present for ops of type ‘update’.

Contains a description of updated and removed fields in this operation.

Generated using TypeDoc