$multiply (Multiplication)
Last updated: 2026-10-09
$multiply (Multiplication)
$multiply computes the product of multiple numeric values in aggregation expressions. Arguments are passed as an array with at least two elements. It is commonly used in $project, $addFields, or $set to compute line totals (unit price times quantity) or currency conversions. If any argument is null or missing, the whole expression returns null; strings or dates cause an error. Like $add it is a plain expression, not an accumulator — a running product across grouped documents needs $push with $reduce.
| Category | Math |
|---|---|
| MongoDB Version | 1.0+ |
| Example Language | mongosh (Shell) |
📝 Syntax
{ $multiply: [ <expression1>, <expression2>, ... ] }
⚙️ Parameters
| factor | Numeric values or expressions resolving to them; at least two. |
|---|
Returns:The product of all arguments
▶ Example
Run the commands below in your local mongosh (requires a running mongod):
// $multiply: compute subtotal from price and quantity
db.orders.aggregate([
{ $project: {
subtotal: { $multiply: ['$price', '$quantity'] }
} }
])
Output:
{ '_id': 1, 'subtotal': 250 }
{ '_id': 2, 'subtotal': 72 }
📌 Notes
- Arguments must be numbers; strings and dates throw
- Any null or missing argument yields null
- Multiplying across documents is not $multiply's job; use $group with $reduce
🏷️ Related Tags
💡 Related Cases
More hands-on cases coming soon.
📚 Related Tutorials
❓ FAQ
QCan $multiply multiply strings or dates?
ANo — non-numeric types throw; convert with $toDouble or $toInt first.
QWhat is the difference between $multiply and $sum?
A$sum is a $group accumulator that sums rows; $multiply is an expression that multiplies the values in an array.
QHow do I multiply values across documents?
ACollect the values with $push inside $group, then multiply them step by step with $reduce.