Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

$changeStream (agregação)

Nesta página

  • Definição
  • Suporte à API Estável
  • Exemplos
$changeStream

Gera um cursor deChange Stream em uma collection, banco de dados de dados ou cluster inteiro. Deve ser usado como o primeiro estágio em um agregação pipeline.

O estágio $changeStream tem a seguinte sintaxe:

{
$changeStream: {
allChangesForCluster: <boolean>,
fullDocument: <string>,
resumeAfter: <document>
startAfter: <document>
startAtOperationTime: <timestamp>
}
}
Parâmetro
Descrição

allChangesForCluster

Opcional: define se o fluxo de alterações deve incluir todas as alterações no cluster. Só pode ser aberto no banco de dados admin.

fullDocument

Opcional: Especifica se as notificações de alteração incluem uma cópia do documento completo quando modificado por operações update.

  • default: notificações de alteração não incluem o documento completo para operações de update.

  • updateLookup: as notificações de alteração incluem uma cópia do documento modificado pela alteração. Este é o documento confirmado pela maioria atual ou null se não existir mais.

No caso de atualizações parciais, a notificação de alteração também fornece uma descrição da alteração.

resumeAfter

Opcional. Especifica um token de currículo como o ponto de partida lógico para o fluxo de alteração. Não pode ser usado para retomar o fluxo de alterações após um evento invalidate.

resumeAfter é mutuamente exclusivo com startAfter e startAtOperationTime.

startAfter

Opcional. Especifica um token de resumo como o ponto de partida lógico para o fluxo de alterações. Ao contrário de resumeAfter, startAfter pode retomar notificações após um evento invalidate criando um novo fluxo de alterações.

startAfter é mutuamente exclusivo com resumeAfter e startAtOperationTime.

startAtOperationTime

Especifica uma hora como o ponto de partida lógico para o change stream. Não pode ser utilizado com campos resumeAfter ou startAfter.

Os change streams estão incluídos na Stable API V1.

Para criar um cursor de change stream com o estágio de aggregation, execute o comando aggregate.

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

Para abrir o cursor, execute cur.

Quando o fluxo de alteração detecta uma alteração, o método next() retorna uma notificação de alteração de evento. Por exemplo, após executar o cur.next(), o MongoDB retorna um documento semelhante ao seguinte:

{
"_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 mais informações sobre como alterar as notificações de transmissão, consulte Alterar eventos.

Voltar

$bucketAuto