เพื่อกลับผลลัพธ์ (Inverse) ของการค้นหา $and ให้ใช้ $or ร่วมกับ $ne (Not Equal)
สร้างคอลเลกชันพร้อมเอกสาร:
> db.demo4.insert({uid:1,"Name":"Chris","Age":22});
WriteResult({ "nInserted" : 1 })
> db.demo4.insert({uid:2,"Name":"David","Age":21});
WriteResult({ "nInserted" : 1 })
> db.demo4.insert({uid:3,"Name":"Bob","Age":23});
WriteResult({ "nInserted" : 1 })
> db.demo4.insert({uid:1,"Name":"Carol","Age":20});
WriteResult({ "nInserted" : 1 })
แสดงเอกสารทั้งหมด:
> db.demo4.find();
ผลลัพธ์ - 4 เอกสาร:
คำสั่งค้นหา: uid = 2 และ (Name != "Carol" OR Age != 21) - ใช้ $or กับ $ne เพื่อทำ Inverse ของ AND:
> db.demo4.find({uid:2,$or: [{"Name": {$ne: "Carol"}}, {"Age": {$ne: 21}}]});ผลลัพธ์ - ได้เฉพาะเอกสาร uid=2 (David, Age 21) เพราะตรง uid=2 และ Name ไม่ใช่ Carol (เป็น David):