$month - 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.

$month

Dans Amazon DocumentDB, l'$monthopérateur renvoie le mois d'une date sous la forme d'un nombre compris entre 1 et 12. Cet opérateur est utile pour extraire le composant mensuel d'un champ de date et pour effectuer des agrégations et des analyses basées sur la date.

Paramètres

  • date_expression: il s'agit de l'expression ou du champ qui contient la date ou l'horodatage à partir duquel vous souhaitez extraire le mois.

Exemple (MongoDB Shell)

L'exemple suivant montre comment utiliser l'$monthopérateur pour extraire le mois d'un champ de date et regrouper les données par mois.

Création d'exemples de documents

db.sales.insert([ { product: "abc123", price: 10.99, date: new Date("2022-01-15") }, { product: "def456", price: 15.50, date: new Date("2022-02-28") }, { product: "ghi789", price: 8.25, date: new Date("2022-03-10") }, { product: "jkl012", price: 12.75, date: new Date("2022-04-05") }, { product: "mno345", price: 18.99, date: new Date("2022-05-20") } ]);

Exemple de requête

db.sales.aggregate([ { $group: { _id: { month: { $month: "$date" } }, totalSales: { $sum: "$price" } }}, { $sort: { "_id.month": 1 } } ]);

Sortie

[ { _id: { month: 1 }, totalSales: 10.99 }, { _id: { month: 2 }, totalSales: 15.5 }, { _id: { month: 3 }, totalSales: 8.25 }, { _id: { month: 4 }, totalSales: 12.75 }, { _id: { month: 5 }, totalSales: 18.99 } ]

Exemples de code

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

Node.js
const { MongoClient } = require('mongodb'); async function groupSalesByMonth() { const client = await MongoClient.connect('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false'); try { await client.connect(); const db = client.db('test'); const collection = db.collection('sales'); const pipeline = [ { $group: { _id: { month: { $month: "$date" } }, totalSales: { $sum: "$price" } } }, { $sort: { "_id.month": 1 } } ]; const results = await collection.aggregate(pipeline).toArray(); console.dir(results, { depth: null }); } finally { await client.close(); } } groupSalesByMonth().catch(console.error);
Python
from pymongo import MongoClient def group_sales_by_month(): client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false') try: db = client.test collection = db.sales pipeline = [ { "$group": { "_id": { "$month": "$date" }, "totalSales": { "$sum": "$price" } } }, { "$sort": { "_id": 1 } } ] results = collection.aggregate(pipeline) for doc in results: print(doc) except Exception as e: print(f"An error occurred: {e}") finally: client.close() group_sales_by_month()