Bird
Raised Fist0
MongoDBquery~5 mins

$addFields for computed fields in MongoDB - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the $addFields stage do in a MongoDB aggregation pipeline?
It adds new fields or modifies existing fields in the documents by computing values, without removing any existing fields.
Click to reveal answer
beginner
How can you use $addFields to create a new field that is the sum of two existing fields, price and tax?
Use $addFields with an expression like: { totalCost: { $add: ["$price", "$tax"] } } to add a new field totalCost.
Click to reveal answer
beginner
Can $addFields remove fields from documents?
No, $addFields only adds or updates fields. To remove fields, use $project or $unset.
Click to reveal answer
intermediate
What happens if you use $addFields to add a field that already exists in the document?
The existing field is overwritten with the new computed value.
Click to reveal answer
intermediate
Give an example of using $addFields to add a field isAdult that is true if age is 18 or more, false otherwise.
Use: { $addFields: { isAdult: { $gte: ["$age", 18] } } }. This adds isAdult as true or false based on age.
Click to reveal answer
What is the main purpose of the $addFields stage in MongoDB?
ASort documents
BAdd or update fields in documents
CRemove fields from documents
DGroup documents
Which operator can you use inside $addFields to sum two fields price and tax?
A$multiply
B$sum
C$add
D$concat
If you want to remove a field from documents, which stage should you use instead of $addFields?
A$unset
B$addFields
C$group
D$match
What happens if $addFields adds a field that already exists?
AThe existing field is overwritten
BThe field is ignored
CThe field is duplicated
DIt causes an error
How would you add a boolean field isAdult that is true if age is 18 or more?
A{ isAdult: { $lt: ["$age", 18] } }
B{ isAdult: { $ne: ["$age", 18] } }
C{ isAdult: { $eq: ["$age", 18] } }
D{ isAdult: { $gte: ["$age", 18] } }
Explain how $addFields can be used to compute new fields in MongoDB documents.
Think about how you can add new information to each document without losing old data.
You got /4 concepts.
    Describe a scenario where $addFields is useful in a data aggregation pipeline.
    Consider when you want to enrich your data with new calculated details.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the primary purpose of the $addFields stage in a MongoDB aggregation pipeline?
      easy
      A. To add new fields or update existing fields with computed values in documents
      B. To delete fields from documents permanently
      C. To sort documents based on a field
      D. To group documents by a specific field

      Solution

      1. Step 1: Understand the role of $addFields

        $addFields is used to add new fields or update existing fields with computed values inside documents during aggregation.
      2. Step 2: Compare with other stages

        Deleting fields is done by $project, sorting by $sort, and grouping by $group. These are different from $addFields.
      3. Final Answer:

        To add new fields or update existing fields with computed values in documents -> Option A
      4. Quick Check:

        $addFields adds or updates fields [OK]
      Hint: Remember: $addFields enriches documents with new computed fields [OK]
      Common Mistakes:
      • Confusing $addFields with $project which removes fields
      • Thinking $addFields sorts or groups documents
      • Assuming $addFields deletes fields
      2. Which of the following is the correct syntax to add a new field named totalPrice that multiplies price and quantity using $addFields?
      easy
      A. { $addFields: { totalPrice: "$price" * "$quantity" } }
      B. { $addFields: { totalPrice: "$price" + "$quantity" } }
      C. { $addFields: { totalPrice: { $multiply: ["$price", "$quantity"] } } }
      D. { $addFields: { totalPrice: { $add: ["$price", "$quantity"] } } }

      Solution

      1. Step 1: Identify correct operator for multiplication

        MongoDB uses $multiply with an array of fields to multiply values.
      2. Step 2: Check syntax correctness

        { $addFields: { totalPrice: { $multiply: ["$price", "$quantity"] } } } correctly uses $multiply with array syntax and field references with $.
      3. Final Answer:

        { $addFields: { totalPrice: { $multiply: ["$price", "$quantity"] } } } -> Option C
      4. Quick Check:

        Use $multiply with array for multiplication [OK]
      Hint: Use $multiply with array of fields for multiplication [OK]
      Common Mistakes:
      • Using arithmetic operators like * directly inside $addFields
      • Confusing $add with multiplication
      • Missing $ before field names
      3. Given the collection documents:
      { "item": "apple", "price": 2, "quantity": 5 }

      What will be the output document after applying this aggregation stage?
      { $addFields: { totalCost: { $multiply: ["$price", "$quantity"] } } }
      medium
      A. Error: Invalid operator
      B. { "item": "apple", "price": 2, "quantity": 5, "totalCost": "2*5" }
      C. { "item": "apple", "price": 2, "quantity": 5 }
      D. { "item": "apple", "price": 2, "quantity": 5, "totalCost": 10 }

      Solution

      1. Step 1: Calculate the multiplication of price and quantity

        2 multiplied by 5 equals 10.
      2. Step 2: Understand $addFields adds the computed field

        The new field totalCost will be added with value 10.
      3. Final Answer:

        { "item": "apple", "price": 2, "quantity": 5, "totalCost": 10 } -> Option D
      4. Quick Check:

        2 * 5 = 10 added as totalCost [OK]
      Hint: Multiply fields inside $addFields to get computed values [OK]
      Common Mistakes:
      • Expecting string expression instead of computed number
      • Forgetting to add the new field in output
      • Assuming syntax error when operator is correct
      4. Identify the error in this aggregation stage:
      { $addFields: { discountPrice: { $multiply: "$price", 0.9 } } }
      medium
      A. Cannot multiply a field by a number in $addFields
      B. Incorrect use of $multiply operator syntax; expects an array
      C. Field name discountPrice is invalid
      D. Missing $ before price

      Solution

      1. Step 1: Check $multiply syntax

        $multiply requires an array of expressions, but here it is given two separate arguments.
      2. Step 2: Identify correct syntax

        The correct syntax is { $multiply: ["$price", 0.9] } using an array.
      3. Final Answer:

        Incorrect use of $multiply operator syntax; expects an array -> Option B
      4. Quick Check:

        $multiply needs array of operands [OK]
      Hint: Always use array syntax with $multiply [OK]
      Common Mistakes:
      • Passing arguments to $multiply without array brackets
      • Assuming field names cannot be multiplied by numbers
      • Confusing field name syntax with missing $
      5. You have documents with fields price and taxRate. You want to add a field finalPrice that is price plus price multiplied by taxRate. Which $addFields stage correctly computes this?
      hard
      A. { $addFields: { finalPrice: { $add: ["$price", { $multiply: ["$price", "$taxRate"] }] } } }
      B. { $addFields: { finalPrice: "$price" + "$price" * "$taxRate" } }
      C. { $addFields: { finalPrice: { $multiply: ["$price", "$taxRate"] } } }
      D. { $addFields: { finalPrice: { $add: ["$price", "$taxRate"] } } }

      Solution

      1. Step 1: Understand the formula for finalPrice

        The formula is price + (price * taxRate), which requires addition and multiplication.
      2. Step 2: Check correct MongoDB operators usage

        { $addFields: { finalPrice: { $add: ["$price", { $multiply: ["$price", "$taxRate"] }] } } } uses $add with an array containing price and the multiplication result of price and taxRate, which is correct syntax.
      3. Final Answer:

        { $addFields: { finalPrice: { $add: ["$price", { $multiply: ["$price", "$taxRate"] }] } } } -> Option A
      4. Quick Check:

        Use nested $add and $multiply for combined calculations [OK]
      Hint: Nest $multiply inside $add for combined calculations [OK]
      Common Mistakes:
      • Trying to use arithmetic operators directly inside $addFields
      • Adding price and taxRate directly without multiplication
      • Using wrong operator or missing array brackets
      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