Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
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 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 cambios están incluidos en la Stable API V1.

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, después de 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