本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
$not
该$not运算符用于否定给定表达式的结果。它允许您选择与指定条件不匹配的文档。
Planner 版本 2.0 增加了对$not {eq}和的索引支持$not {in}。
参数
示例(MongoDB 外壳)
以下示例演示如何使用$not运算符来查找status字段不等于 “active” 的文档。
创建示例文档
db.users.insertMany([
{ name: "John", status: "active" },
{ name: "Jane", status: "inactive" },
{ name: "Bob", status: "pending" },
{ name: "Alice", status: "active" }
]);
查询示例
db.users.find({ status: { $not: { $eq: "active" } } });
输出
[
{
_id: ObjectId('...'),
name: 'Jane',
status: 'inactive'
},
{
_id: ObjectId('...'),
name: 'Bob',
status: 'pending'
}
]
代码示例
要查看使用该$not命令的代码示例,请选择要使用的语言的选项卡:
- Node.js
-
const { MongoClient, Filters } = require('mongodb');
async function main() {
const client = await MongoClient.connect('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false');
const db = client.db('test');
const collection = db.collection('users');
const result = await collection.find({
status: { $not: { $eq: "active" } }
}).toArray();
console.log(result);
await client.close();
}
main();
- Python
-
from pymongo import MongoClient
from bson.son import SON
client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false')
db = client['test']
collection = db['users']
result = collection.find({
"status": {"$not": {"$eq": "active"}}
})
for doc in result:
print(doc)
client.close()