

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.

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

L'`$out`opérateur d'Amazon DocumentDB est utilisé pour écrire le résultat d'un pipeline d'agrégation dans une collection spécifiée.

`$out`devrait être la dernière étape du pipeline.

**Paramètres**
+ `output_collection`: nom de la collection de sortie dans laquelle écrire les résultats de l'agrégation.

**Remarque** : Si la collection existe déjà, elle sera remplacée par les résultats de la phase d'agrégation.

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

L'exemple suivant montre comment utiliser l'`$out`opérateur dans Amazon DocumentDB pour écrire les résultats d'un pipeline d'agrégation dans une nouvelle collection.

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

```
db.products.insertMany([
  { _id: 1, name: "Wireless Headphones", category: "Electronics", price: 100.0 },
  { _id: 2, name: "Smartphone", category: "Electronics", price: 200.0 },
  { _id: 3, name: "JavaScript Guide", category: "Books", price: 50.0 },
  { _id: 4, name: "Database Design Handbook", category: "Books", price: 75.0 }
]);
```

**Exemple de requête**

```
db.products.aggregate([
  { $group: { _id: "$category", totalPrice: { $sum: "$price" } } },
  { $out: "product_categories" }
])
```

**Sortie**

Aucune (les résultats sont écrits dans la collection de sortie).

Le pipeline d'agrégation regroupe les produits par catégorie et calcule le prix total des articles pour chaque catégorie. L'`$out`opérateur écrit les résultats dans une nouvelle collection nommée « product\$1categories ».

**Pour afficher les résultats dans la collection de sorties :**

```
db.product_categories.find()
[
{ "_id" : "Books", "totalPrice" : 125 },
{ "_id" : "Electronics", "totalPrice" : 300 }
]
```

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

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

------
#### [ Node.js ]

```
const { MongoClient } = require('mongodb');

async function demo_out_operator() {
  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 products = db.collection('products');

  // Execute aggregation with $out - results are stored in 'product_categories' collection
  await products.aggregate([
    { $group: { _id: "$category", totalPrice: { $sum: "$price" } } },
    { $out: "product_categories" }
  ]).toArray();

  // Retrieve the results from the output collection (limited to 20 records)
  const productCategories = db.collection('product_categories');
  const results = await productCategories.find({}).limit(20).toArray();
  
  console.log('Results stored in product_categories collection:', results);
  await client.close();
}

demo_out_operator();
```

------
#### [ Python ]

```
from pymongo import MongoClient

def demo_out_operator():
    client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false')
    db = client['test']
    products = db['products']

    # Execute aggregation with $out - results are stored in 'product_categories' collection
    list(products.aggregate([
        { '$group': { '_id': '$category', 'totalPrice': { '$sum': '$price' } } },
        { '$out': 'product_categories' }
    ]))

    # Retrieve the results from the output collection (limited to 20 records)
    product_categories = db['product_categories']
    results = list(product_categories.find({}).limit(20))
    
    print('Results stored in product_categories collection:', results)
    client.close()

demo_out_operator()
```

------