Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
$ zusammenführen
In 8.0 eingeführt
Die $merge Aggregationsphase in Amazon DocumentDB wird verwendet, um die Ergebnisse der vorherigen Pipeline-Phase in einer Zielsammlung zusammenzuführen. Dies ist nützlich, um Dokumente auf der Grundlage der Daten aus den Eingabedokumenten zu aktualisieren oder in eine Zielsammlung einzufügen.
In dieser $merge Phase können Sie verschiedene Aktionen ausführen, die auf der Übereinstimmungsbedingung zwischen den Eingabedokumenten und der Zielsammlung basieren, z. B.:
- Insert new documents - Update existing documents - Delete documents - Fail the operation if there are any conflicts
Parameter
-
into: (erforderlich) Der Name der Zielsammlung, zu der die Eingabedokumente zusammengeführt werden sollen. -
on: (erforderlich) Die Felder, die als Vergleichsbedingung zwischen den Eingabedokumenten und der Zielsammlung verwendet werden sollen. -
whenMatched: (optional) Die Aktion, die ausgeführt werden soll, wenn das Eingabedokument mit einem vorhandenen Dokument in der Zielsammlung übereinstimmt. Unterstützte Werte sind"merge","replace","keepExisting"und"fail". -
whenNotMatched: (optional) Die Aktion, die ausgeführt werden soll, wenn das Eingabedokument mit keinem Dokument in der Zielsammlung übereinstimmt. Unterstützte Werte sind:"insert"und"fail".
Beispiel (MongoDB Shell)
Das folgende Beispiel zeigt, wie der $merge Stagingbereich verwendet wird, um eine users Sammlung mit neuen Daten aus einer Eingabepipeline zu aktualisieren.
Erstellen Sie Beispieldokumente
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" } ]);
Beispiel für eine Abfrage
db.inputData.aggregate([ { $merge: { into: "users", on: "_id", whenMatched: "merge", whenNotMatched: "insert" } } ])
Ausgabe
Nach dem Ausführen der $merge Pipeline wird die users Sammlung die folgenden Dokumente enthalten:
[
{ _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" }
]
Codebeispiele
Um ein Codebeispiel für die Verwendung des $merge Befehls anzuzeigen, wählen Sie die Registerkarte für die Sprache, die Sie verwenden möchten: