Docs Menu
Docs Home
/
MongoDB Manual
/ / / /

changeStreamOptions

On this page

  • Definition
  • Syntax
  • Parameter Fields
  • Behavior
  • Example
changeStreamOptions

New in version 6.0.

Available for both mongod and mongos.

An object that contains change stream configuration options.

You can only set changeStreamOptions on mongos or a replica set primary. The value is set cluster-wide.

To set changeStreamOptions for your deployment, run the following command on the admin database:

db.adminCommand( { setClusterParameter: { changeStreamOptions: <value> } } )

To view current values for the changeStreamOptions cluster parameter, run the following command on the admin database:

db.adminCommand( { getClusterParameter: "changeStreamOptions" } )
changeStreamOptions.preAndPostImages.expireAfterSeconds

New in version 6.0.

Default: off

Controls the retention policy of change stream pre- and post-images. Pre- and post-images are the versions of a document before and after document modification respectively. expireAfterSeconds controls how long MongoDB retains pre- and post-images.

When expireAfterSeconds is off, MongoDB uses the default retention policy: pre- and post-images are retained until the corresponding change stream events are removed from the oplog.

To set the minimum pre- and post-image retention time, specify an integer value for expireAfterSeconds.

Important

Services that use change streams, including Triggers and Device Sync, might rely on the availability of pre-image data. If you set expireAfterSeconds too low, you may increase the risk of interrupting sync or triggers processing.

When setting expireAfterSeconds for pre-images, ensure that you:

  • Specify a value that isn't lower than the typical change stream lag for the service.

  • Add buffer time to allow the service to resume manually before risking oplog data loss.

If a change stream event is removed from the oplog, then the corresponding pre- and post-images are also deleted regardless of the retention time specified with changeStreamOptions.preAndPostImages.expireAfterSeconds.

The following example sets the retention time for pre- and post-images in change streams to 100 seconds:

db.runCommand( {
setClusterParameter: {
changeStreamOptions: { preAndPostImages: { expireAfterSeconds: 100 } }
}
} )

Back

auditConfig