0
0
MongoDBquery~5 mins

$not operator behavior in MongoDB

Choose your learning style9 modes available
Introduction

The $not operator helps you find data that does NOT match a certain condition. It flips the rule you give it.

You want to find all users who do NOT live in a specific city.
You want to get products that do NOT have a price less than 100.
You want to find orders that do NOT have a status of 'shipped'.
You want to exclude documents where a field matches a certain pattern.
You want to filter out records that do NOT meet a numeric condition.
Syntax
MongoDB
{ field: { $not: { <operator-expression> } } }

The $not operator must be used inside a field condition.

The <operator-expression> is usually another operator like $lt, $gt, or a regex.

Examples
Find documents where age is NOT less than 30 (age >= 30).
MongoDB
{ age: { $not: { $lt: 30 } } }
Find documents where name does NOT contain 'John'.
MongoDB
{ name: { $not: /John/ } }
Find documents where score is NOT greater than or equal to 50 (score < 50).
MongoDB
{ score: { $not: { $gte: 50 } } }
Sample Program

This inserts four students with different ages. Then it finds students whose age is NOT less than 30, meaning age is 30 or more.

MongoDB
db.students.insertMany([
  { name: "Alice", age: 25 },
  { name: "Bob", age: 35 },
  { name: "Charlie", age: 30 },
  { name: "David", age: 28 }
])

// Find students NOT younger than 30
const result = db.students.find({ age: { $not: { $lt: 30 } } }).toArray()
result
OutputSuccess
Important Notes

$not works only with other operators or regex inside it, not with direct values.

It reverses the meaning of the condition inside it.

Remember to use $not inside a field condition, not as a top-level operator.

Summary

$not flips the condition you give it to find data that does NOT match.

Use it inside a field with another operator or regex.

It helps exclude unwanted data easily.