$month - Amazon DocumentDB
Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions, see Getting Started with Amazon Web Services in China (PDF).

$month

The $month operator in Amazon DocumentDB returns the month of a date as a number between 1 and 12. This operator is useful for extracting the month component from a date field and performing date-based aggregations and analyses.

Parameters

  • date_expression: This is the expression or field that contains the date or timestamp from which you want to extract the month.

Example (MongoDB Shell)

The following example demonstrates how to use the $month operator to extract the month from a date field and group the data by month.

Create sample 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") } ]);

Query example

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

Output

[ { _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 } ]

Code examples

To view a code example for using the $month command, choose the tab for the language that you want to use:

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