

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.

# \$1set
<a name="set-stage"></a>

Nouveau depuis la version 8.0

Non pris en charge par le cluster Elastic.

La phase `$set` d'agrégation dans Amazon DocumentDB vous permet d'ajouter de nouveaux champs ou de mettre à jour les valeurs de champs existantes dans la documentation au cours d'un pipeline d'agrégation.

**Paramètres**
+ `expression`: expression à évaluer. Il peut s'agir de n'importe quelle expression d'agrégation valide, y compris les références de champs et les opérations arithmétiques.

## Exemple (MongoDB Shell)
<a name="set-stage-examples"></a>

L'exemple suivant illustre l'utilisation de la phase d'`$set`agrégation pour calculer les totaux en multipliant le `quantity` champ par le `price` champ.

**Création d'exemples de documents**

```
db.inventory.insertMany([
  { item: "pencil", quantity: 100, price: 0.24},
  { item: "pen", quantity: 204, price: 1.78 }
]);
```

**Exemple d'agrégation**

```
db.inventory.aggregate([
  {
    $set: {
      total: { $multiply: ["$quantity", "$price"] }
    }
  }
])
```

**Sortie**

```
[
  {
    _id: ObjectId('69248951d66dcae121d2950d'),
    item: 'pencil',
    quantity: 100,
    price: 0.24,
    total: 24
  },
  {
    _id: ObjectId('69248951d66dcae121d2950e'),
    item: 'pen',
    quantity: 204,
    price: 1.78,
    total: 363.12
  }
]
```

## Exemples de code
<a name="set-stage-code"></a>

Pour afficher un exemple de code d'utilisation de la `$set` 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 inventory = db.collection('inventory');

  const result = await inventory.aggregate([
      {
        $set: {
          total: { $multiply: ["$quantity", "$price"] }
        }
      }
  ]).toArray();

  console.log(result);
  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']
    inventory = db['inventory']

    result = list(inventory.aggregate([
      {
        "$set": {
          "total": { "$multiply": ["$quantity", "$price"] }
        }
      }
    ]))

    print(result)
    client.close()

example()
```

------