$out - Amazon DocumentDB

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.

$out

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

$outdevrait ê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)

L'exemple suivant montre comment utiliser l'$outopé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'$outopérateur écrit les résultats dans une nouvelle collection nommée « product_categories ».

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

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