ใช้ $nin สำหรับ Array ที่ไม่มีค่าที่ระบุ
Operator $nin (Not In) ใช้หา Document ที่ Array Field ไม่มี Element ที่มีค่าตรงกับที่กำหนด
สร้างข้อมูลตัวอย่าง
> db.documentWithAParticularFieldValueDemo.insertOne({
"StudentId": 101,
"StudentDetails": [
{ "TheoryMarks": 78, "PracticalMarks": 91 },
{ "TheoryMarks": 75, "PracticalMarks": 75 }
]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5c8edab72f684a30fbdfd586") }
> db.documentWithAParticularFieldValueDemo.insertOne({
"StudentId": 102,
"StudentDetails": [
{ "TheoryMarks": 91, "PracticalMarks": 91 },
{ "TheoryMarks": 75, "PracticalMarks": 75 }
]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5c8edaf12f684a30fbdfd587") }
Query Student ที่ไม่มี TheoryMarks = 78 ใน Array StudentDetails
> db.documentWithAParticularFieldValueDemo.find({'StudentDetails.TheoryMarks': {$nin: [78]}}).pretty();
{ "_id" : ObjectId("5c8edaf12f684a30fbdfd587"), "StudentId" : 102, "StudentDetails" : [ { "TheoryMarks" : 91, "PracticalMarks" : 91 }, { "TheoryMarks" : 75, "PracticalMarks" : 75 } ] }
คืนค่าเฉพาะ StudentId 102 เพราะใน Array StudentDetails ไม่มี TheoryMarks = 78