Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
$unisci
Introdotto nella versione 8.0
La fase di $merge aggregazione in Amazon DocumentDB viene utilizzata per unire i risultati della fase precedente della pipeline in una raccolta di destinazione. Ciò è utile per aggiornare o inserire documenti in una raccolta di destinazione in base ai dati dei documenti di input.
La $merge fase consente di eseguire varie azioni in base alla condizione di corrispondenza tra i documenti di input e la raccolta di destinazione, ad esempio:
- Insert new documents - Update existing documents - Delete documents - Fail the operation if there are any conflicts
Parametri
-
into: (obbligatorio) Il nome della raccolta di destinazione in cui unire i documenti di input. -
on: (obbligatorio) I campi da utilizzare come condizione di corrispondenza tra i documenti di input e la raccolta di destinazione. -
whenMatched: (opzionale) L'azione da eseguire quando il documento di input corrisponde a un documento esistente nella raccolta di destinazione. I valori supportati sono:"merge","replace","keepExisting"e"fail". -
whenNotMatched: (opzionale) L'azione da eseguire quando il documento di input non corrisponde a nessun documento nella raccolta di destinazione. I valori supportati sono:"insert"e"fail".
Esempio (MongoDB Shell)
L'esempio seguente mostra come utilizzare lo $merge stage per aggiornare una users raccolta con nuovi dati da una pipeline di input.
Crea documenti di esempio
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" } ]);
Esempio di interrogazione
db.inputData.aggregate([ { $merge: { into: "users", on: "_id", whenMatched: "merge", whenNotMatched: "insert" } } ])
Output
Dopo aver eseguito la $merge pipeline, la users raccolta conterrà i seguenti documenti:
[
{ _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" }
]
Esempi di codice
Per visualizzare un esempio di codice per l'utilizzo del $merge comando, scegliete la scheda relativa alla lingua che desiderate utilizzare: