如何在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 }