$count (Count Accumulator)
Last updated: 2026-10-09
$count (Count Accumulator)
$count is an accumulator counting documents within a $group, available since MongoDB 5.0. It is the clearer equivalent of { $sum: 1 }. Note the difference from the $count stage: the stage emits a { count: N } document, while the accumulator returns a numeric count per group.
| Category | Accumulators |
|---|---|
| MongoDB Version | 1.0+ |
| Example Language | mongosh (Shell) |
📝 Syntax
{ $group: { _id: <key>, n: { $count: {} } } }
Returns:Integer count of documents in the group
▶ Example
Run the commands below in your local mongosh (requires a running mongod):
// $count: orders per status
db.orders.aggregate([
{ $group: { _id: '$status', n: { $count: {} } } }
])
Output:
{ "_id": "A", "n": 25 }
{ "_id": "B", "n": 10 }
📌 Notes
- Equivalent to { $sum: 1 }
- Unlike the $count stage, it does not end the pipeline
- No field expression needed; every group document counts
🏷️ Related Tags
💡 Related Cases
Introduction to Aggregate Pipelines: The `aggregate` Method and the Basic Stage
Hands-On: CRUD for a Blog Comment System
$facet + $bucket + Text/Geospatial Search
📚 Related Tutorials
❓ FAQ
QWhat is the difference between the $count accumulator and the $count stage?
AThe accumulator returns a per-group count; the stage emits a single { count: N } document.
QDoes the $count accumulator take parameters?
ANo, just write { $count: {} }.
QWhen should I use $count over $sum: 1?
AIt reads better with identical performance, so prefer it.