Bird
Raised Fist0
MongoDBquery~5 mins

Comparison expressions ($eq, $gt in aggregation) in MongoDB - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the $eq operator do in MongoDB aggregation?

The $eq operator checks if two values are equal. It returns true if they are the same, otherwise false.

Click to reveal answer
beginner
How does the $gt operator work in MongoDB aggregation?

The $gt operator checks if the first value is greater than the second value. It returns true if it is, otherwise false.

Click to reveal answer
beginner
Write a simple MongoDB aggregation expression using $eq to check if the field status equals "active".
{ $eq: ["$status", "active"] }
Click to reveal answer
beginner
In aggregation, what type of value do $eq and $gt return?

Both $eq and $gt return a boolean value: true or false.

Click to reveal answer
intermediate
Why are comparison expressions like $eq and $gt useful in MongoDB aggregation?

They help filter or create conditions inside aggregation pipelines, allowing you to compare values and decide which documents to include or how to transform data.

Click to reveal answer
What does { $eq: ["$age", 30] } check in an aggregation pipeline?
AIf the field <code>age</code> is greater than 30
BIf the field <code>age</code> is not equal to 30
CIf the field <code>age</code> is less than 30
DIf the field <code>age</code> equals 30
Which operator would you use to check if a value is greater than another in MongoDB aggregation?
A$gt
B$ne
C$lt
D$eq
What type of value do $eq and $gt return in aggregation?
ANumber
BString
CBoolean
DArray
In the expression { $gt: ["$score", 50] }, what does it mean if the result is true?
AThe score equals 50
BThe score is greater than 50
CThe score is less than 50
DThe score is not a number
Which of these is a valid use of $eq in an aggregation pipeline?
A{ $eq: ["$price", 100] }
B{ $eq: "$price", 100 }
C{ $eq: "$price" }
D{ $eq: [100] }
Explain how the $eq and $gt operators work in MongoDB aggregation and give a simple example of each.
Think about comparing values and returning true or false.
You got /4 concepts.
    Describe a real-life situation where you might use $eq and $gt in a MongoDB aggregation pipeline.
    Imagine sorting or filtering data like a list of users or products.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the $eq operator do in a MongoDB aggregation pipeline?
      easy
      A. Checks if one value is greater than another
      B. Sorts documents in ascending order
      C. Checks if two values are equal
      D. Filters documents by existence of a field

      Solution

      1. Step 1: Understand the purpose of $eq

        The $eq operator compares two values to see if they are exactly the same.
      2. Step 2: Compare with other operators

        Unlike $gt which checks if one value is greater, $eq checks equality.
      3. Final Answer:

        Checks if two values are equal -> Option C
      4. Quick Check:

        $eq means equal [OK]
      Hint: Remember: eq means equal, gt means greater [OK]
      Common Mistakes:
      • Confusing $eq with $gt
      • Thinking $eq sorts data
      • Using $eq to check field existence
      2. Which of the following is the correct syntax to use $gt in a MongoDB aggregation $match stage to find documents where age is greater than 30?
      easy
      A. { $match: { $gt: { age: 30 } } }
      B. { $match: { age: { $gt: 30 } } }
      C. { $match: { age: $gt(30) } }
      D. { $match: { age: { gt: 30 } } }

      Solution

      1. Step 1: Recall correct operator syntax

        MongoDB operators like $gt are used as keys inside an object with the field name as the key.
      2. Step 2: Match correct structure

        The correct syntax is { field: { $gt: value } }, so { age: { $gt: 30 } } is correct.
      3. Final Answer:

        { $match: { age: { $gt: 30 } } } -> Option B
      4. Quick Check:

        Correct operator syntax = { $match: { age: { $gt: 30 } } } [OK]
      Hint: Operators go inside field object with $ prefix [OK]
      Common Mistakes:
      • Placing $gt outside the field object
      • Using parentheses like a function
      • Missing $ before gt
      3. Given the aggregation pipeline stage:
      { $match: { score: { $gt: 80 } } }

      Which documents will be matched if the collection has documents with scores: 75, 80, 85, 90?
      medium
      A. Documents with scores 75, 85, and 90
      B. Documents with scores 75 and 80
      C. Documents with scores 80, 85, and 90
      D. Documents with scores 85 and 90

      Solution

      1. Step 1: Understand $gt meaning

        The $gt operator matches values strictly greater than the given number, here 80.
      2. Step 2: Check which scores are greater than 80

        Scores 85 and 90 are greater than 80; 75 and 80 are not.
      3. Final Answer:

        Documents with scores 85 and 90 -> Option D
      4. Quick Check:

        Only scores > 80 match = Documents with scores 85 and 90 [OK]
      Hint: Remember $gt excludes equal values [OK]
      Common Mistakes:
      • Including values equal to 80
      • Confusing $gt with $gte
      • Selecting lower values by mistake
      4. Identify the error in this aggregation $match stage:
      { $match: { $eq: ["$status", "active"] } }
      medium
      A. Incorrect use of $eq outside a field key
      B. Missing $gt operator
      C. Wrong array syntax for $eq
      D. No error, syntax is correct

      Solution

      1. Step 1: Check $eq usage in $match

        The $eq operator is usually used inside $expr or aggregation expressions, not directly as a key in $match.
      2. Step 2: Understand correct placement

        To compare fields with $eq, it must be inside $expr, like { $match: { $expr: { $eq: ["$status", "active"] } } }.
      3. Final Answer:

        Incorrect use of $eq outside a field key -> Option A
      4. Quick Check:

        $eq needs $expr for expressions [OK]
      Hint: Use $expr to compare fields with $eq [OK]
      Common Mistakes:
      • Using $eq directly in $match without $expr
      • Confusing $eq array syntax
      • Assuming $eq works like a filter key
      5. You want to filter documents where price is greater than 100 and category equals "electronics" using aggregation. Which $match stage correctly uses $gt and $eq together?
      hard
      A. { $match: { price: { $gt: 100 }, category: "electronics" } }
      B. { $match: { $and: [ { price: { $gt: 100 } }, { category: { eq: "electronics" } } ] } }
      C. { $match: { price: { $gt: 100 }, category: { eq: "electronics" } } }
      D. { $match: { $expr: { $and: [ { gt: ["$price", 100] }, { eq: ["$category", "electronics"] } ] } } }

      Solution

      1. Step 1: Understand simple field comparisons

        For simple equality, you can directly write category: "electronics" without using $eq.
      2. Step 2: Combine conditions in $match

        MongoDB $match supports multiple field conditions combined with AND by default, so { price: { $gt: 100 }, category: "electronics" } works.
      3. Step 3: Check other options

        { $match: { price: { $gt: 100 }, category: { $eq: "electronics" } } } misuses $eq inside $match (not needed). { $match: { $and: [ { price: { $gt: 100 } }, { category: { $eq: "electronics" } } ] } } uses $and unnecessarily. { $match: { $expr: { $and: [ { $gt: ["$price", 100] }, { $eq: ["$category", "electronics"] } ] } } } uses $expr which is more complex than needed.
      4. Final Answer:

        { $match: { price: { $gt: 100 }, category: "electronics" } } -> Option A
      5. Quick Check:

        Simple conditions combine directly in $match [OK]
      Hint: Use direct equality for fields, $gt for ranges [OK]
      Common Mistakes:
      • Overusing $eq inside $match
      • Using $and unnecessarily
      • Using $expr when not needed
      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