Concept Flow - $sum accumulator
Start with empty sum = 0
Read each document's value
Add value to sum
Repeat for all documents
Output total sum
The $sum accumulator adds up values from each document in a group and outputs the total sum.
db.sales.aggregate([
{ $group: { _id: null, totalSales: { $sum: "$amount" } } }
])| Step | Document amount | Current sum | Action | Sum after action |
|---|---|---|---|---|
| 1 | 100 | 0 | Add 100 to sum | 100 |
| 2 | 200 | 100 | Add 200 to sum | 300 |
| 3 | 50 | 300 | Add 50 to sum | 350 |
| 4 | 150 | 350 | Add 150 to sum | 500 |
| 5 | - | 500 | No more documents | Final sum = 500 |
| Variable | Start | After 1 | After 2 | After 3 | After 4 | Final |
|---|---|---|---|---|---|---|
| sum | 0 | 100 | 300 | 350 | 500 | 500 |
$sum accumulator in MongoDB groups documents and adds values. Starts at 0, adds each document's field value. Ignores missing or null values as 0. Outputs total sum after processing all documents.