MongoDB không có toán tử NAND trực tiếp. Để phủ định điều kiện AND phức tạp, dùng $or kết hợp $ne (khác) thay vì $not.
Tạo collection demo266 với 2 trường boolean:
> db.demo266.insertOne({"active1":true,"active2":false});
> db.demo266.insertOne({"active1":true,"active2":true});
> db.demo266.insertOne({"active1":false,"active2":false});
> db.demo266.insertOne({"active1":false,"active2":true});
Yêu cầu: tìm document KHÔNG có (active1=true VÀ active2=true) → tương đương (active1≠true HOẶC active2≠true):
> db.demo266.find({
$or: [
{"active1": {"$ne": true}},
{"active2": {"$ne": true}}
]
});
Kết quả loại bỏ document có cả 2 = true:
{
"_id" : ObjectId("5e480f4b1627c0c63e7dbaa7"),
"active1" : true,
"active2" : false
}
{
"_id" : ObjectId("5e480f561627c0c63e7dbaa9"),
"active1" : false,
"active2" : false
}
{
"_id" : ObjectId("5e480f701627c0c63e7dbaaa"),
"active1" : false,
"active2" : true
}