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á.
$merge
Introduzido na versão 8.0
O estágio $merge de agregação no Amazon DocumentDB é usado para mesclar os resultados do estágio anterior do pipeline em uma coleção de destino. Isso é útil para atualizar ou inserir documentos em uma coleção de destino com base nos dados dos documentos de entrada.
O $merge estágio permite que você execute várias ações com base na condição de correspondência entre os documentos de entrada e a coleção de destino, como:
- Insert new documents - Update existing documents - Delete documents - Fail the operation if there are any conflicts
Parâmetros
-
into: (obrigatório) O nome da coleção de destino na qual mesclar os documentos de entrada. -
on: (obrigatório) Os campos a serem usados como condição de correspondência entre os documentos de entrada e a coleção de destino. -
whenMatched: (opcional) A ação a ser executada quando o documento de entrada corresponde a um documento existente na coleção de destino. Os valores compatíveis são:"merge","replace","keepExisting"e"fail". -
whenNotMatched: (opcional) A ação a ser executada quando o documento de entrada não corresponde a nenhum documento na coleção de destino. Os valores suportados são:"insert""fail"e.
Exemplo (MongoDB Shell)
O exemplo a seguir demonstra como usar o $merge estágio para atualizar uma users coleção com novos dados de um pipeline de entrada.
Crie documentos de amostra
db.users.insertMany([ { _id: 1, name: "John Doe", email: "john@example.com" }, { _id: 2, name: "Jane Smith", email: "jane@example.com" } ]); db.inputData.insertMany([ { _id: 1, name: "John Doe", email: "john@example.com", phone: "123-456-7890" }, { _id: 3, name: "Bob Johnson", email: "bob@example.com", phone: "987-654-3210" } ]);
Exemplo de consulta
db.inputData.aggregate([ { $merge: { into: "users", on: "_id", whenMatched: "merge", whenNotMatched: "insert" } } ])
Saída
Depois de executar o $merge pipeline, a users coleção conterá os seguintes documentos:
[
{ _id: 1, name: "John Doe", email: "john@example.com", phone: "123-456-7890" },
{ _id: 2, name: "Jane Smith", email: "jane@example.com" },
{ _id: 3, name: "Bob Johnson", email: "bob@example.com", phone: "987-654-3210" }
]
Exemplos de código
Para ver um exemplo de código para usar o $merge comando, escolha a guia do idioma que você deseja usar: