Filtrar eventos
Recibe solo los eventos que te interesan con un pipeline en watch.
Recibe solo los eventos que te interesan pasando un pipeline a watch. El filtro se aplica en el servidor, así que los demás eventos no viajan por la red.
Requisitos
- Un usuario con los privilegios
findychangeStreamsobre lo que vigilas.
Filtrar por tipo y por campo
JavaScript
const stream = db.pedidos.watch([
{ $match: { operationType: "update", "updateDescription.updatedFields.estado": "pagado" } },
{ $project: { documentKey: 1, "updateDescription.updatedFields": 1 } },
]);Traer el documento entero
JavaScript
const stream = db.pedidos.watch([], { fullDocument: "updateLookup" });Comprobar
Con el stream abierto, un updateOne que cambia el estado a pagado produce un evento y uno que cambia otro campo no.
Problemas frecuentes
- Un
$projectque quita_iddeja el evento sin token de reanudación y el stream falla.