Bird
Raised Fist0
MongoDBquery~5 mins

$eq for equality in MongoDB - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What does the $eq operator do in MongoDB?

The $eq operator checks if a field's value is equal to a specified value. It returns documents where the field matches exactly.

Click to reveal answer
beginner
How do you use $eq in a MongoDB query to find documents where age is 30?

You write: { age: { $eq: 30 } }. This finds documents where the age field equals 30.

Click to reveal answer
intermediate
Is { age: 30 } the same as { age: { $eq: 30 } } in MongoDB queries?

Yes, both find documents where age equals 30. The first is shorthand; the second uses $eq explicitly.

Click to reveal answer
intermediate
Can $eq be used to compare fields to null in MongoDB?

Yes, { field: { $eq: null } } finds documents where field is null or does not exist.

Click to reveal answer
beginner
What is the difference between $eq and $ne in MongoDB?

$eq checks for equality (equal to), while $ne checks for inequality (not equal to).

Click to reveal answer
What does { age: { $eq: 25 } } return in MongoDB?
ADocuments where age is greater than 25
BDocuments where age is not 25
CDocuments where age is 25
DDocuments where age is less than 25
Is { name: { $eq: "Alice" } } equivalent to { name: "Alice" }?
AYes, both find documents where name is Alice
BNo, they find different documents
COnly the first works
DOnly the second works
Which operator finds documents where a field is NOT equal to a value?
A$eq
B$gt
C$lt
D$ne
What happens if you query { score: { $eq: null } }?
AFinds documents where score is null or missing
BFinds documents where score is zero
CFinds documents where score is not null
DReturns an error
Which is a correct way to find documents where status equals "active"?
A{ status: "active" }
BBoth B and C
C{ status: { $eq: "active" } }
DNeither B nor C
Explain how the $eq operator works in MongoDB queries.
Think about how you find items that exactly match a value.
You got /3 concepts.
    Describe the difference between using $eq and not using it in a MongoDB query.
    Consider if <code>{ age: 30 }</code> and <code>{ age: { $eq: 30 } }</code> return the same documents.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the $eq operator do in a MongoDB query?
      easy
      A. It sorts documents in ascending order.
      B. It deletes documents from the collection.
      C. It updates documents with new values.
      D. It matches documents where a field is equal to a specified value.

      Solution

      1. Step 1: Understand the purpose of $eq

        The $eq operator is used to filter documents where a field exactly matches a given value.
      2. Step 2: Compare with other options

        Sorting, updating, and deleting are different operations and not related to $eq.
      3. Final Answer:

        It matches documents where a field is equal to a specified value. -> Option D
      4. Quick Check:

        $eq means equality match [OK]
      Hint: Remember: $eq means 'equals' in queries [OK]
      Common Mistakes:
      • Confusing $eq with sorting or updating operators
      • Thinking $eq modifies data instead of filtering
      • Assuming $eq works for inequality
      2. Which of the following is the correct syntax to find documents where the field age equals 30 using $eq?
      easy
      A. { age: { $eq: 30 } }
      B. { $eq: { age: 30 } }
      C. { age: $eq: 30 }
      D. { age == 30 }

      Solution

      1. Step 1: Recall MongoDB query syntax for $eq

        The correct syntax uses the field name as key and an object with $eq as key and the value to match as value: { age: { $eq: 30 } }.
      2. Step 2: Identify incorrect syntax

        Options B, C, and D do not follow MongoDB query syntax rules and will cause errors.
      3. Final Answer:

        { age: { $eq: 30 } } -> Option A
      4. Quick Check:

        Field: { $eq: value } format [OK]
      Hint: Use { field: { $eq: value } } for equality [OK]
      Common Mistakes:
      • Placing $eq outside the field key
      • Using double colons or wrong operators
      • Using JavaScript equality syntax instead of MongoDB
      3. Given the collection users with documents:
      { "name": "Alice", "age": 25 }, { "name": "Bob", "age": 30 }, { "name": "Carol", "age": 30 }

      What will the query db.users.find({ age: { $eq: 30 } }) return?
      medium
      A. [{ "name": "Bob", "age": 30 }, { "name": "Carol", "age": 30 }]
      B. [] (empty array)
      C. [{ "name": "Alice", "age": 25 }]
      D. Syntax error

      Solution

      1. Step 1: Understand the query condition

        The query looks for documents where age equals 30.
      2. Step 2: Check documents matching the condition

        Bob and Carol have age 30, so both documents match and will be returned.
      3. Final Answer:

        [{ "name": "Bob", "age": 30 }, { "name": "Carol", "age": 30 }] -> Option A
      4. Quick Check:

        age == 30 returns Bob and Carol [OK]
      Hint: Look for documents where field equals value [OK]
      Common Mistakes:
      • Returning documents with age not equal to 30
      • Expecting only one document instead of all matches
      • Thinking $eq causes syntax error
      4. You wrote the query db.products.find({ price: $eq: 100 }) but it gives an error. What is wrong?
      medium
      A. Field name price is invalid
      B. Missing curly braces around $eq: 100 value
      C. You cannot use $eq with numbers
      D. The collection name products is incorrect

      Solution

      1. Step 1: Check the query syntax

        The $eq operator must be inside an object as the value for the field key, like { price: { $eq: 100 } }.
      2. Step 2: Identify the missing braces

        The query is missing curly braces around $eq: 100, causing a syntax error.
      3. Final Answer:

        Missing curly braces around $eq: 100 value -> Option B
      4. Quick Check:

        Use { field: { $eq: value } } syntax [OK]
      Hint: Always wrap $eq and value in braces { } [OK]
      Common Mistakes:
      • Omitting braces around $eq operator
      • Assuming $eq works without object syntax
      • Blaming collection or field name incorrectly
      5. You want to find documents in orders where the status is exactly "shipped" and the quantity is 10. Which query correctly uses $eq for both conditions?
      hard
      A. db.orders.find({ status: "shipped", quantity: 10 })
      B. db.orders.find({ $eq: { status: "shipped", quantity: 10 } })
      C. db.orders.find({ status: { $eq: "shipped" }, quantity: { $eq: 10 } })
      D. db.orders.find({ status == "shipped", quantity == 10 })

      Solution

      1. Step 1: Use $eq for each field separately

        Each field must have its own $eq operator inside an object: { status: { $eq: "shipped" } } and { quantity: { $eq: 10 } }.
      2. Step 2: Combine conditions in one query object

        Put both conditions inside the find query object to filter documents matching both.
      3. Final Answer:

        db.orders.find({ status: { $eq: "shipped" }, quantity: { $eq: 10 } }) -> Option C
      4. Quick Check:

        Use separate $eq for each field [OK]
      Hint: Use separate $eq for each field in the query [OK]
      Common Mistakes:
      • Trying to use one $eq for multiple fields
      • Using JavaScript equality operators in query
      • Omitting $eq and relying on implicit equality