Bird
Raised Fist0
MongoDBquery~10 mins

$ne for not equal in MongoDB - Interactive Code Practice

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
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to find documents where the field 'status' is not equal to 'active'.

MongoDB
db.collection.find({ status: { [1]: "active" } })
Drag options to blanks, or click blank then click option'
A$ne
B$eq
C$gt
D$in
Attempts:
3 left
💡 Hint
Common Mistakes
Using $eq instead of $ne.
Using $in which checks for inclusion in an array.
Using $gt which checks for greater than.
2fill in blank
medium

Complete the code to find documents where the 'age' field is not equal to 30.

MongoDB
db.users.find({ age: { [1]: 30 } })
Drag options to blanks, or click blank then click option'
A$gte
B$lt
C$eq
D$ne
Attempts:
3 left
💡 Hint
Common Mistakes
Using $gte or $lt which are comparison operators but not 'not equal'.
Using $eq which means equal, not not equal.
3fill in blank
hard

Fix the error in the query to find documents where 'category' is not 'books'.

MongoDB
db.products.find({ category: [1] })
Drag options to blanks, or click blank then click option'
A$ne:
B{ $ne: }
C{ $ne: "books" }
D$ne
Attempts:
3 left
💡 Hint
Common Mistakes
Writing $ne without curly braces.
Using $ne without a colon or value.
Placing $ne outside an object.
4fill in blank
hard

Fill both blanks to find documents where 'status' is not 'pending' and 'priority' is not 1.

MongoDB
db.tasks.find({ status: { [1]: "pending" }, priority: { [2]: 1 } })
Drag options to blanks, or click blank then click option'
A$ne
B$eq
C$gt
D$lt
Attempts:
3 left
💡 Hint
Common Mistakes
Using $eq which means equal, not not equal.
Mixing different operators like $gt or $lt which check greater or less than.
5fill in blank
hard

Fill all three blanks to find documents where 'type' is not 'admin', 'score' is not 100, and 'active' is not false.

MongoDB
db.users.find({ type: { [1]: "admin" }, score: { [2]: 100 }, active: { [3]: false } })
Drag options to blanks, or click blank then click option'
A$eq
B$ne
C$gt
D$lt
Attempts:
3 left
💡 Hint
Common Mistakes
Using $eq which means equal, not not equal.
Using $gt or $lt which check greater or less than, not inequality.

Practice

(1/5)
1.

What does the $ne operator do in MongoDB queries?

easy
A. Finds documents where a field is NOT equal to a specified value
B. Finds documents where a field is equal to a specified value
C. Finds documents where a field is greater than a specified value
D. Finds documents where a field is less than a specified value

Solution

  1. Step 1: Understand the purpose of $ne

    The $ne operator is used to filter documents where a field's value is not equal to the given value.
  2. Step 2: Compare with other operators

    Other operators like $eq check for equality, but $ne specifically excludes matching values.
  3. Final Answer:

    Finds documents where a field is NOT equal to a specified value -> Option A
  4. Quick Check:

    $ne = Not Equal [OK]
Hint: Remember: $ne means 'not equal' in queries [OK]
Common Mistakes:
  • Confusing $ne with $eq
  • Thinking $ne checks for greater or less than
  • Using $ne without a value
2.

Which of the following is the correct syntax to find documents where the field status is NOT equal to "active"?

{ status: { ? } }
easy
A. { $not: "active" }
B. { $eq: "active" }
C. { $ne: "active" }
D. { $neq: "active" }

Solution

  1. Step 1: Recall correct operator syntax

    The $ne operator is used with the syntax: { field: { $ne: value } } to find documents where the field is not equal to the value.
  2. Step 2: Check other options for correctness

    $eq checks equality, $not is used differently, and $neq is not a valid MongoDB operator.
  3. Final Answer:

    { $ne: "active" } -> Option C
  4. Quick Check:

    Correct syntax uses $ne [OK]
Hint: Use { field: { $ne: value } } for not equal queries [OK]
Common Mistakes:
  • Using $neq instead of $ne
  • Confusing $not with $ne
  • Missing curly braces around $ne
3.

Given the collection users with documents:

[{ "name": "Alice", "age": 25 }, { "name": "Bob", "age": 30 }, { "name": "Carol", "age": 25 }]

What will be the result of the query db.users.find({ age: { $ne: 25 } })?

medium
A. [{ "name": "Bob", "age": 30 }]
B. [{ "name": "Alice", "age": 25 }, { "name": "Carol", "age": 25 }]
C. [] (empty array)
D. All documents in the collection

Solution

  1. Step 1: Understand the query condition

    The query { age: { $ne: 25 } } finds documents where the age is NOT equal to 25.
  2. Step 2: Check each document's age

    Alice and Carol have age 25, so they are excluded. Bob has age 30, so he matches.
  3. Final Answer:

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

    Only age != 25 returns Bob [OK]
Hint: Exclude matching values with $ne to get others [OK]
Common Mistakes:
  • Including documents with age 25
  • Returning all documents by mistake
  • Confusing $ne with $eq
4.

Identify the error in this MongoDB query to find documents where category is NOT equal to "books":

db.collection.find({ category: { $ne: books } })
medium
A. The query is correct as is
B. Incorrect operator, should use $neq instead of $ne
C. The field name should be in quotes
D. Missing quotes around the string value "books"

Solution

  1. Step 1: Check the value type in the query

    The value "books" is a string and must be enclosed in quotes in MongoDB queries.
  2. Step 2: Verify operator and field name

    The operator $ne is correct, and field names do not require quotes unless special characters are present.
  3. Final Answer:

    Missing quotes around the string value "books" -> Option D
  4. Quick Check:

    String values need quotes [OK]
Hint: Always quote string values in queries [OK]
Common Mistakes:
  • Leaving string values unquoted
  • Using $neq instead of $ne
  • Quoting field names unnecessarily
5.

You have a collection products with documents containing type and price. You want to find all products that are NOT of type "electronics" and have a price NOT equal to 100. Which query correctly uses $ne to achieve this?

hard
A. { $ne: { type: "electronics", price: 100 } }
B. { type: { $ne: "electronics" }, price: { $ne: 100 } }
C. { type: { $ne: "electronics" } || price: { $ne: 100 } }
D. { type: { $not: "electronics" }, price: { $not: 100 } }

Solution

  1. Step 1: Use $ne on each field separately

    To find documents where type is not "electronics" and price is not 100, apply $ne to each field individually.
  2. Step 2: Check query syntax correctness

    { type: { $ne: "electronics" }, price: { $ne: 100 } } correctly uses { type: { $ne: "electronics" }, price: { $ne: 100 } }. { $ne: { type: "electronics", price: 100 } } misuses $ne on an object, { type: { $ne: "electronics" } || price: { $ne: 100 } } uses invalid syntax with ||, and { type: { $not: "electronics" }, price: { $not: 100 } } uses $not incorrectly.
  3. Final Answer:

    { type: { $ne: "electronics" }, price: { $ne: 100 } } -> Option B
  4. Quick Check:

    Apply $ne to each field separately [OK]
Hint: Use $ne on each field inside the query object [OK]
Common Mistakes:
  • Using $ne on an object instead of fields
  • Using logical OR (||) inside query object incorrectly
  • Confusing $not with $ne