

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.

# \$1setUnion
<a name="setUnion"></a>

L'opérateur d'`$setUnion`agré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)
<a name="setUnion-examples"></a>

L'exemple suivant montre comment utiliser l'`$setUnion`opé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'`$setUnion`opé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
<a name="setUnion-code"></a>

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

------