MongoDB
Beginner
1 min read
Aggregation Pipeline Basics
Example
// Count orders by status
db.orders.aggregate([
// Stage 1: filter to only 2024 orders
{ $match: { createdAt: { $gte: new Date("2024-01-01") } } },
// Stage 2: group by status, count and sum total
{ $group: {
_id: "$status",
count: { $sum: 1 },
revenue: { $sum: "$total" },
avgOrder: { $avg: "$total" }
}},
// Stage 3: rename _id to status
{ $project: {
_id: 0,
status: "$_id",
count: 1,
revenue: { $round: ["$revenue", 2] },
avgOrder: { $round: ["$avgOrder", 2] }
}},
// Stage 4: sort by revenue descending
{ $sort: { revenue: -1 } }
])