

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.

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

Nouveau depuis la version 8.0

Non pris en charge par Elastic Cluster.

La phase d'`$set`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 des références de champs et des opérations arithmétiques.

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

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

**Créez des 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()
```

------