$setUnion - Amazon DocumentDB

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.

$setUnion

Der $setUnion Aggregationsoperator in Amazon DocumentDB wird verwendet, um zwei oder mehr Wertesätze zu kombinieren und eine Menge zurückzugeben, die alle eindeutigen Elemente aus den Eingabesätzen enthält. Dieser Operator ist nützlich, wenn Sie mengenbasierte Operationen für Array-Felder in Ihren Dokumenten ausführen müssen.

Parameter

  • expression1: Ein Ausdruck, der in ein Array aufgelöst wird.

  • expression2: Ein Ausdruck, der in ein Array aufgelöst wird.

  • expressionN: Zusätzliche Ausdrücke, die in Arrays aufgelöst werden (optional).

Beispiel (MongoDB Shell)

Das folgende Beispiel zeigt, wie der $setUnion Operator verwendet wird, um die eindeutigen Elemente aus zwei Array-Feldern in einer Sammlung zu kombinieren.

Erstellen Sie Beispieldokumente

db.users.insertMany([ { _id: 1, name: "Alice", hobbies: ["reading", "swimming"], skills: ["coding", "writing"] }, { _id: 2, name: "Bob", hobbies: ["cooking", "gardening"], skills: ["coding", "photography"] }, { _id: 3, name: "Charlie", hobbies: ["reading", "painting"], skills: ["gardening", "music"] } ]);

Beispiel für eine Abfrage

db.users.aggregate([ { $project: { name: 1, allInterests: { $setUnion: ["$hobbies", "$skills"] } } } ]);

Ausgabe

[ { "_id" : 1, "name" : "Alice", "allInterests" : [ "coding", "reading", "swimming", "writing" ] }, { "_id" : 2, "name" : "Bob", "allInterests" : [ "coding", "cooking", "gardening", "photography" ] }, { "_id" : 3, "name" : "Charlie", "allInterests" : [ "gardening", "music", "painting", "reading" ] } ]

In diesem Beispiel wird der $setUnion Operator verwendet, um die eindeutigen Elemente aus den Feldern hobbies und skills Array für jedes Benutzerdokument zu kombinieren. Das resultierende allInterests Feld enthält die Zusammenfassung aller einzigartigen Hobbys und Fähigkeiten für jeden Benutzer.

Codebeispiele

Um ein Codebeispiel für die Verwendung des $setUnion Befehls anzuzeigen, wählen Sie die Registerkarte für die Sprache, die Sie verwenden möchten:

Node.js
const { MongoClient } = require('mongodb'); async function example() { const client = await MongoClient.connect('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false'); const db = client.db('test'); const users = db.collection('users'); const result = await users.aggregate([ { $project: { _id: 1, name: 1, allInterests: { $setUnion: ["$hobbies", "$skills"] } } } ]).toArray(); console.log(result); await client.close(); } example();
Python
from pymongo import MongoClient def example(): client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false') db = client['test'] users = db['users'] result = list(users.aggregate([ { '$project': { '_id': 1, 'name': 1, 'allInterests': { '$setUnion': ["$hobbies", "$skills"] } } } ])) print(result) client.close() example()