$setUnion - Amazon DocumentDB

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.

$setUnion

L'opérateur d'$setUnionagrégation dans Amazon DocumentDB est utilisé pour combiner deux ou plusieurs ensembles de valeurs et renvoyer un ensemble contenant tous les éléments uniques des ensembles d'entrée. Cet opérateur est utile lorsque vous devez effectuer des opérations basées sur des ensembles sur des champs de tableau dans vos documents.

Paramètres

  • expression1: expression qui se résout en un tableau.

  • expression2: expression qui se résout en un tableau.

  • expressionN: expressions supplémentaires qui se résolvent en tableaux (facultatif).

Exemple (MongoDB Shell)

L'exemple suivant montre comment utiliser l'$setUnionopérateur pour combiner les éléments uniques de deux champs de tableau dans une collection.

Création d'exemples de documents

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"] } ]);

Exemple de requête

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

Sortie

[ { "_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" ] } ]

Dans cet exemple, l'$setUnionopérateur est utilisé pour combiner les éléments uniques des champs hobbies et du skills tableau pour chaque document utilisateur. Le allInterests champ qui en résulte contient l'union de tous les loisirs et compétences uniques de chaque utilisateur.

Exemples de code

Pour afficher un exemple de code d'utilisation de la $setUnion commande, choisissez l'onglet correspondant à la langue que vous souhaitez utiliser :

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()