Definición
changeStreamOptionsNovedades en la versión 6.0.
Disponible para ambos
mongodymongos.Un objeto que contiene opciones de configuración de flujo de cambios.
Solo puede configurar
changeStreamOptionsenmongoso en un primario de set de réplicas. El valor se establece a nivel de clúster.
Sintaxis
Para configurar changeStreamOptions para su implementación, ejecute el siguiente comando en la base de datos de admin:
db.adminCommand( { setClusterParameter: { changeStreamOptions: <value> } } )
Para ver los valores actuales del parámetro del clúster changeStreamOptions, ejecute el siguiente comando en la base de datos admin:
db.adminCommand( { getClusterParameter: "changeStreamOptions" } )
Campos de parámetros
changeStreamOptions.preAndPostImages.expireAfterSecondsNovedades en la versión 6.0.
por defecto: desactivado
Controla la política de retención de imágenes previas y posteriores del flujo de cambios. Las imágenes previas y posteriores son las versiones de un documento antes y después de su modificación, respectivamente.
expireAfterSecondscontrola cuánto tiempo MongoDB retiene preimágenes y post-imágenes.Cuando
expireAfterSecondsestáoff, MongoDB usa la política de retención por defecto: las preimágenes y postimágenes se retienen hasta que los correspondientes eventos de flujo de cambios se eliminen del oplog.Para establecer el tiempo mínimo de retención de preimagen y postimagen, especifica un valor entero para
expireAfterSeconds.Importante
Servicios que utilizan flujos de cambios, incluidos Disparadores y Device Sync pueden depender de la disponibilidad de datos previos a la imagen. Si estableces
expireAfterSecondsdemasiado bajo, puedes aumentar el riesgo de interrumpir la sincronización o el procesamiento de triggers.Al configurar
expireAfterSecondspara preimágenes, asegúrate de que:Especifique un valor que no sea inferior a la demora típica del flujo de cambios para el servicio.
Agrega tiempo de colchón para permitir que el servicio se reanude manualmente antes de arriesgar la pérdida de datos de oplog.
Comportamiento
Si se elimina un evento de flujo de cambios del oplog, entonces las imágenes previas y posteriores correspondientes también se eliminan, independientemente del tiempo de retención especificado con changeStreamOptions.preAndPostImages.expireAfterSeconds.
Ejemplo
El siguiente ejemplo establece el tiempo de retención para preimágenes y postimágenes en flujos de cambios en 100 segundos:
db.runCommand( { setClusterParameter: { changeStreamOptions: { preAndPostImages: { expireAfterSeconds: 100 } } } } )