Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Sử dụng NOT và AND cùng lúc trong MongoDB

Có thể kết hợp NOT và AND trong MongoDB. Theo logic De Morgan: NOT X AND NOT Y = NOT (X AND Y) tương đương NOT X OR NOT Y.

Ví dụ: Collection NotAndDemo:

> db.NotAndDemo.insertOne({"StudentName":"John","StudentCountryName":"US"});
> db.NotAndDemo.insertOne({"StudentName":"John","StudentCountryName":"UK"});
> db.NotAndDemo.insertOne({"StudentName":"David","StudentCountryName":"AUS"});
> db.NotAndDemo.insertOne({"StudentName":"Chris","StudentCountryName":"UK"});
> db.NotAndDemo.insertOne({"StudentName":"Chris","StudentCountryName":"US"});

Truy vấn: NOT (StudentName = "Chris" AND StudentCountryName = "US") - tức là loại bỏ tài liệu thỏa mãn CẢ HAI điều kiện.

Cách viết với $or (áp dụng De Morgan):

> db.NotAndDemo.find({
    $or: [
        {"StudentName": { $ne: "Chris" }},
        {"StudentCountryName": { $ne: "US" }}
    ]
}).pretty();

Kết quả (loại bỏ bản ghi Chris-US):

{ "StudentName" : "John", "StudentCountryName" : "US" }
{ "StudentName" : "John", "StudentCountryName" : "UK" }
{ "StudentName" : "David", "StudentCountryName" : "AUS" }
{ "StudentName" : "Chris", "StudentCountryName" : "UK" }

Giải thích: $or với các điều kiện $ne thực hiện logic "NOT X OR NOT Y", tương đương "NOT (X AND Y)".