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.
$ fusionner
Introduit dans la version 8.0
L'étape d'$mergeagrégation dans Amazon DocumentDB est utilisée pour fusionner les résultats de la phase 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". Amazon DocumentDB ne prend pas en charge la spécification d'un pipeline d'agrégation commewhenMatchedvaleur. -
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". -
bypassDocumentValidation: (facultatif) Lorsque cette option est définie surtrue, les documents écrits dans la collection cible par l'$mergeétape contournent les règles de validation de schéma ($jsonSchema) définies pour cette collection. La valeur par défaut estfalse, ce qui applique les règles de validation de la collection cible. Ceci est pris en charge dans Amazon DocumentDB 8.0.
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éez des 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
Une fois le $merge pipeline exécuté, 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 d'utilisation de la $merge commande, choisissez l'onglet correspondant à la langue que vous souhaitez utiliser :