Group values into explicit ranges.
Section: Advanced stages
Bucket data for reporting
javascript
javascript
db.orders.aggregate([
{
$bucket: {
groupBy: "$total",
boundaries: [0, 50, 100, 500, 1000],
default: "1000+",
output: { count: { $sum: 1 } }
}
}
])Explanation
Bucketing is useful for histograms and pricing summaries.
Learn the surrounding workflow
Compare similar commands or jump into common fixes when this command is part of a bigger troubleshooting path.
Related commands
Same sheet · prioritizing Advanced stages
Run multiple result sets with $facet
Produce multiple related aggregations in one pipeline.
Count pipeline output
Return a final count after filters and transforms.
Join with another collection
Use `$lookup` for collection-to-collection joins.