Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
Etapas de la pipeline de agregación

$changeStream (agregación)

$changeStream

Devuelve un(a) Change Stream cursor en una colección, una base de datos o en todo un clúster. Debe usarse como la primera etapa en un pipeline 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 en el clúster. Solo puede abrirse en la base de datos admin.

fullDocument

Opcional: especifica si las notificaciones de cambios incluyen una copia del documento completo cuando es modificado por operaciones update.

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

  • updateLookup: Las notificaciones de cambio incluyen una copia del documento modificado por el cambio. Este documento es el documento actual comprometido por mayoría 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 (resume token) como el punto de partida 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 un momento como punto de partida lógico para el flujo de cambios. No puede usarse 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 cambios usando la etapa de agregación, ejecuta el comando aggregate.

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

Para abrir el cursor, ejecuta 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 flujos de cambios, consulta Eventos de cambio.

Volver

$bucketAuto

En esta página