Visão geral
Cada execução dotrigger de banco de dados tem um evento de alteração relacionado. Você pode configurar esses eventos de alteração para incluir pré-imagens de documento. Uma pré-imagem é um snapshot de um documento antes de uma alteração.
Exemplo
Considere updateOne
em uma collection com pré-imagens:
pets.updateOne( { name: "Fido" }, { $inc: { age: 1 } } )
As pré-imagens adicionam os seguintes dados para gravar eventos de alteração de operação
a pré-imagem do documento no campo
fullDocumentBeforeChange
Pré-imagem - o documento completo como existia antes da alteração{ "name": "Fido", "age": 3 } a pós-imagem do documento no campo
fullDocument
Postimage - o documento completo imediatamente após a alteração{ "name": "Fido", "age": 4 }
Desempenho
Para clusters que executam o MongoDB versão 6.0 e mais recente, os Atlas Triggers usam o recurso integrado de pré-imagens de fluxo de alterações do cluster. Versões mais antigas do MongoDB armazenam pré-imagens diretamente no oplog. Ambos adicionam sobrecarga de armazenamento e computação para cada operação na coleção, o que pode causar problemas de desempenho para coleções com alta taxa de transferência de gravação.
Habilitar pré-imagens de documentos
Você pode habilitar as pré-imagens ao configurar um Database Tools. Document Preimage é uma configuração na configuração do trigger. Alterne isso para ativar as pré-imagens do documento para a collection.
Ver collection habilitadas para pré-imagem
Para visualizar a lista de collection que armazenam pré-imagens de documento:
Navegue até a tela de configuração do Linked Data Source .
Expanda a seção Advanced Configuration.
Esta seção contém a tabela Preimage Preferences by Collection .
Esta tabela lista todas as collection que armazenam pré-imagens no oplog. Habilitar pré-imagens para uma collection se aplica a todas as collection. Isso inclui collection vinculadas a Atlas Triggers em um aplicativo diferente. A collection sem Atlas Triggers que usam pré-imagens também aparecem aqui.
Desativar pré-imagens para uma collection
Você pode desativar as pré-imagens em nível de collection na interface do usuário do App Services.
Para desativar as pré-imagens para uma collection:
(Opcional) Desative as pré-imagens de documento para Atlas Triggers na collection. Os Atlas Triggers com pré-imagens continuam a ser acionados após a desativação das pré-imagens. Mas eles não têm o campo
fullDocumentBeforeChange
em alterar eventos. Isso inclui Atlas Triggers em outros aplicativos do App Services.Encerre a sincronização se a coleção fizer parte de um cluster sincronizado.
Visualize a tabela Preferências de pré-imagem por coleção . Pressione o botão Disable para uma coleção. Isso desativa as pré-imagens para essa collection.
Reative a sincronização, se a collection fizer parte de um cluster sincronizado.
Aviso
Restaurar a sincronização após encerrar a sincronização
Quando você encerra e reativa o Atlas Device Sync, os clientes não podem mais sincronizar. Seu cliente deve implementar um manipulador de redefinição de cliente para restaurar a sincronização. Este manipulador pode descartar ou tentar recuperar alterações não sincronizadas.