Docs Menu
Docs Home
/ /
Etapas de la pipeline de agregación

$changeStream (agregación)

$changeStream

Devuelve un Cambiar el cursor de flujo en una colección, una base de datos o un clúster completo. Debe usarse como primera etapa de una canalización de agregación.

La etapa $changeStream tiene la siguiente sintaxis:

{
$changeStream: {
allChangesForCluster: <boolean>,
fullDocument: <string>,
resumeAfter: <document>
startAfter: <document>
startAtOperationTime: <timestamp>
}
}
Parameter
Descripción

allChangesForCluster

Opcional: Establece si el flujo de cambios debe incluir todos los cambios del clúster. Solo se puede abrir en la base de datos admin.

fullDocument

Opcional: especifica si las notificaciones de cambio incluyen una copia del documento completo cuando se modifican mediante operaciones update.

  • default:Las notificaciones de cambio no incluyen el documento completo para las operaciones update.

  • updateLookupLas notificaciones de cambio incluyen una copia del documento modificado por el cambio. Este documento es el documento mayoritariamente confirmado o null si ya no existe.

En el caso de actualizaciones parciales, la notificación de cambio también proporciona una descripción del cambio.

resumeAfter

Opcional. Especifica un token de reanudación como punto de inicio lógico para el flujo de cambios. No se puede usar para reanudar el flujo de cambios después de un invalidate evento.

resumeAfter es mutuamente excluyente con startAfter y startAtOperationTime.

startAfter

Opcional. Especifica un token de reanudación como el punto de inicio lógico para el flujo de cambios. A diferencia de resumeAfter, startAfter puede reanudar las notificaciones después de un evento invalidate creando un nuevo flujo de cambios.

startAfter es mutuamente excluyente con resumeAfter y startAtOperationTime.

startAtOperationTime

Especifica una hora como punto de inicio lógico para el flujo de cambios. No se puede usar con los campos resumeAfter o startAfter.

Los flujos de cambio están incluidos en la API estable1 V.

Para crear un cursor de flujo de cambio utilizando la etapa de agregación, ejecute el aggregate comando.

var cur = db.names.aggregate( [
{ $changeStream: {} }
] )

Para abrir el cursor, ejecute cur.

Cuando el flujo de cambios detecta un cambio, el método next() devuelve una notificación de evento de cambio. Por ejemplo, tras ejecutar cur.next(), MongoDB devuelve un documento similar al siguiente:

{
"_id": {
_data: "8262E2EE54000000022B022C0100296E5A100448E5E3DD01364019AE8FE8C6859527E046645F6964006462E2EE54C8756C0D5CF6F0720004"
},
"operationType": "insert",
"clusterTime": Timestamp({ t: 1659039316, i: 2 }),
"fullDocument": {
"_id": ObjectId("62e2ee54c8756c0d5cf6f072"),
"name": "Walker Percy"
},
"ns": {
"db": "test",
"coll": "names"
},
"documentKey": { _id: ObjectId("62e2ee54c8756c0d5cf6f072") }
}

Para obtener más información sobre las notificaciones de flujo de cambios, consulte Eventos de cambio.

Volver

$bucketAuto

En esta página