

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

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

El operador de `$setUnion` agregación de Amazon DocumentDB se utiliza para combinar dos o más conjuntos de valores y devolver un conjunto que contiene todos los elementos únicos de los conjuntos de entrada. Este operador resulta útil cuando necesita realizar operaciones basadas en conjuntos en campos matriciales de sus documentos.

**Parámetros**
+ `expression1`: expresión que se convierte en una matriz.
+ `expression2`: expresión que se convierte en una matriz.
+ `expressionN`: Expresiones adicionales que se convierten en matrices (opcional).

## Ejemplo (MongoDB Shell)
<a name="setUnion-examples"></a>

El siguiente ejemplo muestra cómo utilizar el `$setUnion` operador para combinar los elementos únicos de dos campos de matriz de una colección.

**Cree documentos de muestra**

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

**Ejemplo de consulta**

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

**Salida**

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

En este ejemplo, el `$setUnion` operador se utiliza para combinar los elementos únicos de los campos `hobbies` y `skills` matriz de cada documento de usuario. El `allInterests` campo resultante contiene la unión de todas las aficiones y habilidades únicas de cada usuario.

## Ejemplos de código
<a name="setUnion-code"></a>

Para ver un ejemplo de código para usar el `$setUnion` comando, elija la pestaña correspondiente al idioma que desee usar:

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

------