Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
$ fusion
Introduit dans la version 8.0
L'étape d'$mergeagrégation dans Amazon DocumentDB est utilisée pour fusionner les résultats de l'étape de pipeline précédente dans une collection cible. Cela est utile pour mettre à jour ou insérer des documents dans une collection cible en fonction des données des documents d'entrée.
L'$mergeétape vous permet d'effectuer diverses actions en fonction de la condition de correspondance entre les documents d'entrée et la collection cible, telles que :
- Insert new documents - Update existing documents - Delete documents - Fail the operation if there are any conflicts
Paramètres
-
into: (obligatoire) Le nom de la collection cible dans laquelle fusionner les documents d'entrée. -
on: (obligatoire) Le ou les champs à utiliser comme condition de correspondance entre les documents d'entrée et la collection cible. -
whenMatched: (facultatif) Action à effectuer lorsque le document d'entrée correspond à un document existant dans la collection cible. Les valeurs prises en charge sont"merge","replace","keepExisting"et"fail". -
whenNotMatched: (facultatif) Action à effectuer lorsque le document d'entrée ne correspond à aucun document de la collection cible. Les valeurs prises en charge sont les suivantes :"insert"et"fail".
Exemple (MongoDB Shell)
L'exemple suivant montre comment utiliser le $merge stage pour mettre à jour une users collection avec de nouvelles données provenant d'un pipeline d'entrée.
Création d'exemples de documents
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" } ]);
Exemple de requête
db.inputData.aggregate([ { $merge: { into: "users", on: "_id", whenMatched: "merge", whenNotMatched: "insert" } } ])
Sortie
Après avoir exécuté le $merge pipeline, la users collection contiendra les documents suivants :
[
{ _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" }
]
Exemples de code
Pour afficher un exemple de code relatif à l'utilisation de la $merge commande, choisissez l'onglet correspondant à la langue que vous souhaitez utiliser :