기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
$month
Amazon DocumentDB의 $month 연산자는 날짜의 월을 1에서 12 사이의 숫자로 반환합니다. 이 연산자는 날짜 필드에서 월 구성 요소를 추출하고 날짜 기반 집계 및 분석을 수행하는 데 유용합니다.
파라미터
예제(MongoDB 쉘)
다음 예제에서는 $month 연산자를 사용하여 날짜 필드에서 월을 추출하고 데이터를 월별로 그룹화하는 방법을 보여줍니다.
샘플 문서 생성
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") }
]);
쿼리 예제
db.sales.aggregate([
{ $group: {
_id: { month: { $month: "$date" } },
totalSales: { $sum: "$price" }
}},
{ $sort: { "_id.month": 1 } }
]);
출력
[
{ _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 }
]
코드 예제
$month 명령을 사용하기 위한 코드 예제를 보려면 사용하려는 언어의 탭을 선택합니다.
- 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()