तर्क: NOT X AND NOT Y = NOT (X AND Y)
डी मॉर्गन के नियम के अनुसार, NOT X AND NOT Y तार्किक रूप से NOT (X OR Y) के बराबर है, लेकिन MongoDB में हम $or के साथ $ne का उपयोग करके इसे लागू करते हैं।
उदाहरण: नमूना डेटा
> db.NotAndDemo.insertOne({"StudentName":"John","StudentCountryName":"US"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c98746a330fd0aa0d2fe4a8") }
> db.NotAndDemo.insertOne({"StudentName":"John","StudentCountryName":"UK"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c987478330fd0aa0d2fe4a9") }
> db.NotAndDemo.insertOne({"StudentName":"David","StudentCountryName":"AUS"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c987487330fd0aa0d2fe4aa") }
> db.NotAndDemo.insertOne({"StudentName":"Chris","StudentCountryName":"UK"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c9874ac330fd0aa0d2fe4ab") }
> db.NotAndDemo.insertOne({"StudentName":"Chris","StudentCountryName":"US"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c9874b7330fd0aa0d2fe4ac") }
सभी दस्तावेज़ देखना
> db.NotAndDemo.find().pretty();
क्वेरी: "Chris" नहीं AND "US" नहीं (यानी NOT (Name=Chris AND Country=US))
यह उन दस्तावेज़ों को लौटाता है जहां या तो नाम Chris नहीं है या देश US नहीं है (या दोनों)।
> db.NotAndDemo.find({
"$or": [
{"StudentName": {$ne: "Chris"}},
{"StudentCountryName": {$ne: "US"}}
]
}).pretty();
आउटपुट:
व्याख्या: दस्तावेज़ जहां StudentName="Chris" और StudentCountryName="US" दोनों सच हैं (अंतिम दस्तावेज़) को बाहर रखा गया है। अन्य सभी शामिल हैं क्योंकि वे कम से कम एक शर्त को संतुष्ट करते हैं।
नोट: MongoDB में कोई स्पष्ट
$notऑपरेटर नहीं है जो एकाधिक फ़ील्ड पर सीधे लागू हो;$or/$andके साथ$ne,$ninआदि का उपयोग करें।