Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

Query Document ที่ Array ไม่มี Field Value ที่ระบุใน MongoDB

ใช้ $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