As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
$changeStream
Não é compatível com o cluster elástico.
O estágio $changeStream de agregação abre um cursor de fluxo de alterações para monitorar as alterações em tempo real em uma coleção. Ele retorna documentos de eventos de alteração quando ocorrem operações de inserção, atualização, substituição ou exclusão.
Parâmetros
-
fullDocument: especifica se o documento completo deve ser retornado para operações de atualização. As opções sãodefaultouupdateLookup. -
resumeAfter: opcional. Retomar o token para continuar a partir de um ponto específico no fluxo de mudança. -
startAtOperationTime: opcional. Carimbo de data/hora a partir do qual iniciar o fluxo de mudança. -
allChangesForCluster: opcional. Valor booleano. Quandotrue, observa todas as alterações no cluster (para banco de dados administrativo). Quandofalse(padrão), observa somente a coleção especificada.
Exemplo (MongoDB Shell)
O exemplo a seguir demonstra o uso do $changeStream palco para monitorar as alterações em uma coleção.
Exemplo 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())); }
Saída
{
_id: { _data: '...' },
operationType: 'insert',
clusterTime: Timestamp(1, 1234567890),
fullDocument: { _id: 1, item: 'Widget', qty: 10 },
ns: { db: 'test', coll: 'inventory' },
documentKey: { _id: 1 }
}
Exemplos de código
Para ver um exemplo de código para usar o estágio de $changeStream agregação, escolha a guia do idioma que você deseja usar: