使用例と説明
以下は、MongoDBの集計パイプライン操作で $group
と $sum
を組み合わせた例です。この例では、あるカテゴリに属する商品の売上合計を計算します。
例えば、以下のような商品ドキュメントがあるとします:
[
{
"_id": 1,
"category": "Electronics",
"name": "Laptop",
"price": 800,
"quantity": 5
},
{
"_id": 2,
"category": "Electronics",
"name": "Smartphone",
"price": 400,
"quantity": 10
},
{
"_id": 3,
"category": "Clothing",
"name": "T-shirt",
"price": 20,
"quantity": 50
}
]
このドキュメントの集合を対象に、カテゴリごとの売上合計を計算するために、次の集計パイプラインを使用します:
db.products.aggregate([
{
$group: {
_id: "$category",
totalRevenue: {
$sum: { $multiply: ["$price", "$quantity"] }
}
}
}
])
この集計操作では、以下のステップが行われます:
$group
ステージ:$category
フィールドを基準に商品ドキュメントをグループ化し、各カテゴリ内の商品をまとめます。$sum
ステージ:$multiply
を使用して、各商品の売上額(価格 × 数量)を計算し、カテゴリごとに売上の合計を計算します。
結果として、以下のような出力が得られるでしょう:
[
{
"_id": "Electronics",
"totalRevenue": 10000
},
{
"_id": "Clothing",
"totalRevenue": 1000
}
]
要するに、この例では $group
ステージと $sum
演算子を使用して、カテゴリごとの商品売上の合計を計算しています。
コメント