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.
$sum accumulator do in a MongoDB aggregation pipeline?$sum$sum accumulator adds numeric values or counts documents when used in a $group stage.$avg which calculates averages, $sum only totals values or counts documents.$sum = Adds or counts [OK]price in a $group stage?$sum, not sum, and the value must be a string with "$" prefix.{ "category": "A", "value": 10 }{ "category": "A", "value": 20 }{ "category": "B", "value": 5 }[{ $group: { _id: "$category", totalValue: { $sum: "$value" } } }][{ $group: { _id: "$type", total: { $sum: value } } }]store and amount. You want to find the total sales per store but only for stores with total sales above 1000. Which aggregation pipeline correctly uses $sum and filters the results?Pass the test and this pattern moves unknown