Bird
Raised Fist0
MongoDBquery~5 mins

Arithmetic expressions ($add, $multiply, $divide) in MongoDB

Choose your learning style10 modes available
Introduction

Arithmetic expressions help you do math with numbers stored in your database. They let you add, multiply, or divide values easily.

Calculate the total price by adding item prices in a shopping cart.
Find the area of a rectangle by multiplying its length and width stored in the database.
Divide a total score by the number of tests to find the average score.
Add tax to a product price by multiplying the price with the tax rate and then adding it.
Adjust quantities by multiplying stored values with a factor, like doubling stock.
Syntax
MongoDB
{ $add: [expression1, expression2, ...] }
{ $multiply: [expression1, expression2, ...] }
{ $divide: [expression1, expression2] }

Use arrays to list the values or fields you want to calculate.

$divide always takes exactly two values: numerator and denominator.

Examples
Adds 10 and 5 to get 15.
MongoDB
{ $add: [10, 5] }
Multiplies the value in the field price by 2.
MongoDB
{ $multiply: ["$price", 2] }
Divides 100 by 4 to get 25.
MongoDB
{ $divide: [100, 4] }
Adds three fields score1, score2, and score3 together.
MongoDB
{ $add: ["$score1", "$score2", "$score3"] }
Sample Program

This query calculates the total score by adding three subject scores, finds the average by dividing the total by 3, and doubles the math score for each student.

MongoDB
db.students.aggregate([
  {
    $project: {
      name: 1,
      totalScore: { $add: ["$math", "$science", "$english"] },
      averageScore: { $divide: [ { $add: ["$math", "$science", "$english"] }, 3 ] },
      doubleMath: { $multiply: ["$math", 2] }
    }
  }
])
OutputSuccess
Important Notes

Make sure fields used in expressions exist and contain numbers to avoid errors.

You can combine these expressions to do more complex calculations.

Remember $divide requires exactly two arguments: numerator and denominator.

Summary

Arithmetic expressions let you do math inside MongoDB queries.

$add sums values, $multiply multiplies, and $divide divides two values.

Use them to calculate totals, averages, or adjust numbers stored in your data.

Practice

(1/5)
1. What does the MongoDB expression { $add: [5, 3] } do?
easy
A. Multiplies 5 and 3 to get 15
B. Adds 5 and 3 to get 8
C. Divides 5 by 3 to get 1.67
D. Subtracts 3 from 5 to get 2

Solution

  1. Step 1: Understand the $add operator

    The $add operator sums the numbers inside the array.
  2. Step 2: Calculate the sum of 5 and 3

    5 + 3 equals 8.
  3. Final Answer:

    Adds 5 and 3 to get 8 -> Option B
  4. Quick Check:

    $add: [5, 3] = 8 [OK]
Hint: Remember $add sums all values inside the array [OK]
Common Mistakes:
  • Confusing $add with $multiply
  • Thinking $add subtracts values
  • Assuming $add divides numbers
2. Which of the following is the correct syntax to multiply 4 by 7 using MongoDB arithmetic expressions?
easy
A. { $multiply: [4, 7] }
B. { $multiply: 4, 7 }
C. { $multiply: (4, 7) }
D. { multiply: [4, 7] }

Solution

  1. Step 1: Recall correct operator syntax

    MongoDB arithmetic operators use $ followed by the operator name and an array of values.
  2. Step 2: Check each option

    { $multiply: [4, 7] } uses $multiply with an array [4, 7], which is correct syntax.
  3. Final Answer:

    { $multiply: [4, 7] } -> Option A
  4. Quick Check:

    Correct syntax uses $multiply with array [OK]
Hint: Use square brackets [] for values in $multiply [OK]
Common Mistakes:
  • Omitting $ before multiply
  • Using parentheses instead of brackets
  • Passing values without array brackets
3. Given the MongoDB aggregation expression { $divide: [ { $multiply: [10, 5] }, 2 ] }, what is the result?
medium
A. 25
B. 100
C. 2.5
D. 50

Solution

  1. Step 1: Calculate the inner $multiply expression

    $multiply: [10, 5] equals 50.
  2. Step 2: Divide the result by 2

    $divide: [50, 2] equals 25.
  3. Final Answer:

    25 -> Option A
  4. Quick Check:

    (10 * 5) / 2 = 25 [OK]
Hint: Calculate inner expressions first, then outer [OK]
Common Mistakes:
  • Dividing 10 by 5 instead of multiplying
  • Forgetting to divide after multiplication
  • Mixing order of operations
4. Identify the error in this MongoDB expression: { $divide: [10, { $add: 2, 3 }] }
medium
A. There is no error; the expression is correct
B. The $divide operator cannot divide numbers
C. The numbers 10, 2, and 3 must be strings
D. The $add operator must have an array of values, not separate arguments

Solution

  1. Step 1: Check $add operator usage

    $add requires an array of values, but { $add: 2, 3 } uses separate arguments incorrectly.
  2. Step 2: Confirm correct syntax

    The correct syntax is { $add: [2, 3] } with square brackets.
  3. Final Answer:

    The $add operator must have an array of values, not separate arguments -> Option D
  4. Quick Check:

    $add needs array syntax [OK]
Hint: Always use square brackets [] for $add values [OK]
Common Mistakes:
  • Using commas instead of array brackets
  • Assuming $divide cannot divide numbers
  • Passing numbers as strings
5. You want to calculate the average price of items stored in a MongoDB collection using aggregation. Which expression correctly calculates the average price if you have total price as { $add: ["$price1", "$price2", "$price3"] } and want to divide by 3?
hard
A. { $multiply: [ { $add: ["$price1", "$price2", "$price3"] }, 3 ] }
B. { $add: [ { $divide: ["$price1", 3] }, { $divide: ["$price2", 3] }, { $divide: ["$price3", 3] } ] }
C. { $divide: [ { $add: ["$price1", "$price2", "$price3"] }, 3 ] }
D. { $divide: [ 3, { $add: ["$price1", "$price2", "$price3"] } ] }

Solution

  1. Step 1: Understand the average formula

    Average = (sum of values) / number of values.
  2. Step 2: Check each option

    { $divide: [ { $add: ["$price1", "$price2", "$price3"] }, 3 ] } sums prices then divides by 3, matching the average formula.
  3. Final Answer:

    { $divide: [ { $add: ["$price1", "$price2", "$price3"] }, 3 ] } -> Option C
  4. Quick Check:

    Sum prices then divide by count = average [OK]
Hint: Sum first, then divide by count for average [OK]
Common Mistakes:
  • Dividing each price separately then adding
  • Multiplying sum by count instead of dividing
  • Dividing count by sum instead of sum by count
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard