Bird
Raised Fist0
MongoDBquery~5 mins

$or operator behavior 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 $or operator do in MongoDB queries?
The $or operator allows you to specify multiple conditions, and it returns documents that satisfy at least one of those conditions.
Click to reveal answer
beginner
How do you structure a query using $or in MongoDB?
You use $or with an array of condition objects. For example: { $or: [ { age: { $lt: 30 } }, { city: 'New York' } ] } finds documents where age is less than 30 OR city is New York.
Click to reveal answer
intermediate
If a document matches multiple conditions inside $or, how many times does it appear in the result?
The document appears only once in the result, even if it matches multiple $or conditions.
Click to reveal answer
intermediate
Can $or be combined with other operators in the same query?
Yes, $or can be combined with other operators like $and, $not, or direct field queries to build complex filters.
Click to reveal answer
advanced
What happens if you use $or with an empty array in MongoDB?
Using $or with an empty array returns no documents because there are no conditions to satisfy.
Click to reveal answer
What does the MongoDB $or operator require as its value?
AAn array of condition objects
BA single condition object
CA string value
DA number
If a document matches two conditions inside $or, how many times will it appear in the query result?
ANever
BTwice
CDepends on the query
DOnce
Which of the following is a valid $or query in MongoDB?
A{ $or: 'age > 20' }
B{ $or: [ { age: { $gt: 20 } }, { city: 'Paris' } ] }
C{ $or: { age: 20, city: 'Paris' } }
D{ $or: 20 }
What will happen if you run a query with $or: []?
AReturns documents matching the first condition
BReturns all documents
CReturns no documents
DThrows an error
Can $or be used together with $and in the same MongoDB query?
AYes, to combine multiple logical conditions
BNo, they cannot be combined
COnly if <code>$and</code> is inside <code>$or</code>
DOnly if <code>$or</code> is inside <code>$and</code>
Explain how the $or operator works in MongoDB queries and give an example.
Think about how you would find documents that meet one or more criteria.
You got /3 concepts.
    Describe what happens if a document matches multiple conditions inside a $or operator.
    Consider how query results avoid repetition.
    You got /3 concepts.

      Practice

      (1/5)
      1.

      What does the $or operator do in MongoDB queries?

      easy
      A. It returns documents that match at least one of the given conditions.
      B. It returns documents that match all given conditions simultaneously.
      C. It returns documents that do not match any of the given conditions.
      D. It sorts documents based on multiple fields.

      Solution

      1. Step 1: Understand the purpose of $or

        The $or operator is used to find documents that satisfy at least one condition from multiple conditions.
      2. Step 2: Compare with other operators

        Unlike $and, which requires all conditions to be true, $or requires only one condition to be true.
      3. Final Answer:

        It returns documents that match at least one of the given conditions. -> Option A
      4. Quick Check:

        $or = match any condition [OK]
      Hint: Think 'or' means any one condition true [OK]
      Common Mistakes:
      • Confusing $or with $and operator
      • Thinking $or filters documents matching all conditions
      • Assuming $or sorts documents
      2.

      Which of the following is the correct syntax to use $or in a MongoDB query?

      { $or: [ { age: { $lt: 20 } }, { city: "NY" } ] }
      easy
      A. { $or: { age: { $lt: 20 }, city: "NY" } }
      B. { $or: [ age: { $lt: 20 }, city: "NY" ] }
      C. { $or: [ { age: { $lt: 20 } }, { city: "NY" } ] }
      D. { $or: ( age: { $lt: 20 }, city: "NY" ) }

      Solution

      1. Step 1: Check the structure of $or

        The $or operator requires an array of condition objects inside square brackets.
      2. Step 2: Validate each option's syntax

        { $or: [ { age: { $lt: 20 } }, { city: "NY" } ] } correctly uses an array with two objects. Options A, B, and C use incorrect brackets or missing array syntax.
      3. Final Answer:

        { $or: [ { age: { $lt: 20 } }, { city: "NY" } ] } -> Option C
      4. Quick Check:

        $or needs array of conditions [OK]
      Hint: Remember: $or takes an array of condition objects [OK]
      Common Mistakes:
      • Using curly braces instead of square brackets for conditions
      • Using parentheses instead of brackets
      • Not wrapping conditions inside an array
      3.

      Given the collection users with documents:

      [{ "name": "Alice", "age": 25, "city": "NY" }, { "name": "Bob", "age": 19, "city": "LA" }, { "name": "Carol", "age": 30, "city": "SF" }]

      What will the query db.users.find({ $or: [ { age: { $lt: 20 } }, { city: "SF" } ] }) return?

      medium
      A. [{ "name": "Bob", "age": 19, "city": "LA" }, { "name": "Carol", "age": 30, "city": "SF" }]
      B. [{ "name": "Alice", "age": 25, "city": "NY" }]
      C. [{ "name": "Bob", "age": 19, "city": "LA" }]
      D. []

      Solution

      1. Step 1: Identify documents matching each condition

        Condition 1: age < 20 matches Bob (age 19). Condition 2: city = "SF" matches Carol.
      2. Step 2: Combine results with $or

        The query returns documents matching either condition, so Bob and Carol are included.
      3. Final Answer:

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

        $or returns any matching document [OK]
      Hint: Check each condition separately, then combine results [OK]
      Common Mistakes:
      • Including documents that don't match any condition
      • Confusing $or with $and and expecting all conditions to match
      • Ignoring one of the conditions
      4.

      Consider this query that causes an error:

      db.collection.find({ $or: { age: { $gt: 30 }, city: "NY" } })

      What is the main issue causing the error?

      medium
      A. The field names inside $or must be strings.
      B. The query is missing a closing parenthesis.
      C. The operator $gt cannot be used inside $or.
      D. $or requires an array of conditions, not a single object.

      Solution

      1. Step 1: Analyze the $or syntax

        $or expects an array of condition objects, but here it is given a single object.
      2. Step 2: Identify the error cause

        Because the value is not an array, MongoDB throws a syntax error.
      3. Final Answer:

        $or requires an array of conditions, not a single object. -> Option D
      4. Quick Check:

        $or needs array syntax [OK]
      Hint: Always wrap $or conditions in square brackets [OK]
      Common Mistakes:
      • Using object instead of array for $or conditions
      • Misplacing operators inside $or
      • Ignoring syntax errors from missing brackets
      5.

      You want to find documents in a products collection where the category is either "electronics" or the price is less than 100. Which query correctly uses $or to achieve this?

      hard
      A. db.products.find({ category: "electronics" && price: { $lt: 100 } })
      B. db.products.find({ $or: [ { category: "electronics" }, { price: { $lt: 100 } } ] })
      C. db.products.find({ $or: { category: "electronics", price: { $lt: 100 } } })
      D. db.products.find({ $and: [ { category: "electronics" }, { price: { $lt: 100 } } ] })

      Solution

      1. Step 1: Understand the query goal

        We want documents where category is "electronics" OR price is less than 100.
      2. Step 2: Check each option's logic and syntax

        db.products.find({ $or: [ { category: "electronics" }, { price: { $lt: 100 } } ] }) correctly uses $or with an array of two conditions. db.products.find({ $or: { category: "electronics", price: { $lt: 100 } } }) uses an object instead of array, causing syntax error. db.products.find({ category: "electronics" && price: { $lt: 100 } }) uses invalid syntax with &&. db.products.find({ $and: [ { category: "electronics" }, { price: { $lt: 100 } } ] }) uses $and, which requires both conditions to be true, not either.
      3. Final Answer:

        db.products.find({ $or: [ { category: "electronics" }, { price: { $lt: 100 } } ] }) -> Option B
      4. Quick Check:

        $or with array matches either condition [OK]
      Hint: Use array inside $or for multiple conditions [OK]
      Common Mistakes:
      • Using object instead of array for $or
      • Confusing $or with $and
      • Using invalid logical operators like && in MongoDB queries