Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
$changeStream
No es compatible con el clúster de Elastic.
La etapa de $changeStream agregación abre un cursor de flujo de cambios para monitorear los cambios en tiempo real en una colección. Devuelve los documentos de los eventos de cambio cuando se realizan operaciones de inserción, actualización, reemplazo o eliminación.
Parámetros
-
fullDocument: Especifica si se debe devolver el documento completo para las operaciones de actualización. Las opciones sondefaultyupdateLookup. -
resumeAfter: opcional. Reanude el token para continuar desde un punto específico del flujo de cambios. -
startAtOperationTime: opcional. Marca de tiempo desde la que se inicia el flujo de cambios. -
allChangesForCluster: opcional. Valor booleano. Cuandotrue, observa todos los cambios en el clúster (para la base de datos de administración). Cuandofalse(predeterminado), solo observa la colección especificada.
Ejemplo (MongoDB Shell)
El siguiente ejemplo demuestra el uso del $changeStream escenario para supervisar los cambios en una colección.
Ejemplo de consulta
// Open change stream first const changeStream = db.inventory.aggregate([ { $changeStream: { fullDocument: "updateLookup" } } ]); // In another session, insert a document db.inventory.insertOne({ _id: 1, item: "Widget", qty: 10 }); // Back in the first session, read the change event if (changeStream.hasNext()) { print(tojson(changeStream.next())); }
Salida
{
_id: { _data: '...' },
operationType: 'insert',
clusterTime: Timestamp(1, 1234567890),
fullDocument: { _id: 1, item: 'Widget', qty: 10 },
ns: { db: 'test', coll: 'inventory' },
documentKey: { _id: 1 }
}
Ejemplos de código
Para ver un ejemplo de código para usar la etapa de $changeStream agregación, elija la pestaña correspondiente al idioma que desee usar: