$ne
$ne
selects the documents where the value of thefield
is not equal to the specified value
.This includes documents that do not contain the field
.
For comparison of different BSON type values, see the specifiedBSON comparison order.
Consider the following example:
- db.inventory.find( { qty: { $ne: 20 } } )
This query will select all documents in the inventory
collectionwhere the qty
field value does not equal 20
,including those documents that do not contain the qty
field.
Consider the following example which uses the $ne
operator with a field in an embedded document:
- db.inventory.update( { "carrier.state": { $ne: "NY" } }, { $set: { qty: 20 } } )
This update()
operation will setthe qty
field value in the documents that contain the embeddeddocument carrier
whose state
field value does not equal “NY”,or where the state
field or the carrier
embedded documentdo not exist.
The inequality operator $ne
is not very selective sinceit often matches a large portion of the index. As a result, in manycases, a $ne
query with an index may perform no betterthan a $ne
query that must scan all documents in acollection. See also Query Selectivity.
See also