$ne (Not Equal)
Last updated: 2026-10-09
$ne (Not Equal)
$ne is the expression-form inequality comparison. It takes two arguments and returns true when they differ. It is used to exclude specific values or find differing records, such as orders whose status is not closed. The expression syntax { $ne: [expr1, expr2] } differs from the query operator. Note that null compared with null returns false (equal), and in expressions a missing field participates as null — distinct from query behavior where $ne also matches documents missing the field.
| Category | Set, Condition & Conversion |
|---|---|
| MongoDB Version | 1.0+ |
| Example Language | mongosh (Shell) |
📝 Syntax
{ $ne: [ <expression1>, <expression2> ] }
⚙️ Parameters
| expression 1 | The first expression to compare. |
|---|---|
| expression 2 | The second expression to compare. |
Returns:true when the values differ, false when equal
▶ Example
Run the commands below in your local mongosh (requires a running mongod):
// $ne: find orders whose status is not closed
db.orders.aggregate([
{ $project: {
active: { $ne: ['$status', 'closed'] }
} }
])
Output:
{ '_id': 1, 'active': true }
{ '_id': 2, 'active': false }
📌 Notes
- null compared with null returns false
- In expressions a missing field participates as null
- It is the inverse of $eq
🏷️ Related Tags
💡 Related Cases
More hands-on cases coming soon.
📚 Related Tutorials
❓ FAQ
QHow are $ne and $eq related?
AThey are inverses; $ne is the negation of $eq.
QWhat does $ne return for null?
Anull equals null (false); null differs from other values (true).
QCan $ne filter out missing fields?
AIn expressions a missing field counts as null, so it returns true against a non-null value.