Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
$merge
Introducido en 8.0
La etapa de $merge agregación de Amazon DocumentDB se utiliza para combinar los resultados de la etapa de canalización anterior en una colección de destino. Esto resulta útil para actualizar o insertar documentos en una colección de destino en función de los datos de los documentos de entrada.
La $merge etapa permite realizar diversas acciones en función de la condición de coincidencia entre los documentos de entrada y la colección de destino, como:
- Insert new documents - Update existing documents - Delete documents - Fail the operation if there are any conflicts
Parámetros
-
into: (obligatorio) El nombre de la colección de destino en la que se van a combinar los documentos de entrada. -
on: (obligatorio) Los campos que se van a utilizar como condición de coincidencia entre los documentos de entrada y la colección de destino. -
whenMatched: (opcional) La acción que se debe realizar cuando el documento de entrada coincide con un documento existente en la colección de destino. Los valores admitidos son:"merge","replace","keepExisting"y"fail". -
whenNotMatched: (opcional) La acción que se debe realizar cuando el documento de entrada no coincide con ningún documento de la colección de destino. Los valores admitidos son:"insert"y"fail".
Ejemplo (MongoDB Shell)
El siguiente ejemplo muestra cómo utilizar el $merge escenario para actualizar una users colección con nuevos datos de una canalización de entrada.
Cree documentos de muestra
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" } ]);
Ejemplo de consulta
db.inputData.aggregate([ { $merge: { into: "users", on: "_id", whenMatched: "merge", whenNotMatched: "insert" } } ])
Salida
Tras ejecutar la $merge canalización, la users colección contendrá los siguientes 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" }
]
Ejemplos de código
Para ver un ejemplo de código para usar el $merge comando, elija la pestaña correspondiente al idioma que desee usar: