$max (Maximum Accumulator)
Last updated: 2026-10-09
$max (Maximum Accumulator)
$max is an accumulator returning the maximum value of a field across a group in $group, or the maximum array element in $project. Comparisons follow BSON type ordering, so mixed types compare consistently; missing fields are ignored.
| Category | Accumulators |
|---|---|
| MongoDB Version | 1.0+ |
| Example Language | mongosh (Shell) |
📝 Syntax
{ $group: { _id: <key>, max: { $max: "$field" } } }
Returns:Maximum value in the group (compared by BSON type order)
▶ Example
Run the commands below in your local mongosh (requires a running mongod):
// $max: highest price per item
db.sales.aggregate([
{ $group: { _id: '$item', max: { $max: '$price' } } }
])
Output:
{ "_id": "Pen", "max": 80 }
{ "_id": "Book", "max": 25 }
📌 Notes
- Comparison follows BSON type order; mixed types are valid
- Missing fields are ignored
- Symmetric to $min
🏷️ Related Tags
💡 Related Cases
Introduction to Aggregate Pipelines: The `aggregate` Method and the Basic Stage
$facet + $bucket + Text/Geospatial Search
📚 Related Tutorials
❓ FAQ
QCan $max compare strings?
AYes, strings compare lexicographically; different types follow BSON type order.
QHow does $max differ from $sort plus $limit?
A$max computes within the group efficiently; $sort plus $limit suits fetching a whole top document.
QHow is $max used in $project?
ATake the largest array element, e.g. { $project: { m: { $max: '$scores' } } }.