如何使用 MongoDB 中的 Nand 运算符进行查询?


$not 运算符不会颠倒一个复杂表达式。因此,请使用 $and 或 $or 及 $ne 运算符。

让我们创建一个带有文档的集合 −

> db.demo266.insertOne({"active1":true,"active2":false});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e480f4b1627c0c63e7dbaa7")
}
> db.demo266.insertOne({"active1":true,"active2":true});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e480f501627c0c63e7dbaa8")
}
> db.demo266.insertOne({"active1":false,"active2":false});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e480f561627c0c63e7dbaa9")
}
> db.demo266.insertOne({"active1":false,"active2":true});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e480f701627c0c63e7dbaaa")
}

使用 find() 方法显示集合中的所有文档 −

> db.demo266.find();

这将产生以下输出 −

{ "_id" : ObjectId("5e480f4b1627c0c63e7dbaa7"), "active1" : true, "active2" : false }
{ "_id" : ObjectId("5e480f501627c0c63e7dbaa8"), "active1" : true, "active2" : true }
{ "_id" : ObjectId("5e480f561627c0c63e7dbaa9"), "active1" : false, "active2" : false }
{ "_id" : ObjectId("5e480f701627c0c63e7dbaaa"), "active1" : false, "active2" : true }

以下是使用 $or 及 $ne 运算符的查询 −

> db.demo266.find({$or:[{"active1":{"$ne":true}},{"active2":{"$ne":true}}]});

这将产生以下输出 −

{ "_id" : ObjectId("5e480f4b1627c0c63e7dbaa7"), "active1" : true, "active2" : false }
{ "_id" : ObjectId("5e480f561627c0c63e7dbaa9"), "active1" : false, "active2" : false }
{ "_id" : ObjectId("5e480f701627c0c63e7dbaaa"), "active1" : false, "active2" : true }

更新于: 31-3-2020

213 浏览量

开启你的 事业

完成课程并获得认证

立即开始
广告
© . All rights reserved.