สำหรับสิ่งนี้ ให้ใช้ $not ร่วมกับ $in ให้เราสร้างคอลเลกชันที่มีเอกสาร -
[
{
id: "101",
subjectid: [
"102"
]
},
{
id: "102",
subjectid: [
"102"
]
}
] นี่คือสแนปชอต

แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -
db.collection.find()

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
[
{
"_id": ObjectId("5a934e000102030405000000"),
"id": "101",
"subjectid": [
"102"
]
},
{
"_id": ObjectId("5a934e000102030405000001"),
"id": "102",
"subjectid": [
"102"
]
}
] ต่อไปนี้เป็นแบบสอบถามที่ใช้ $expr, $not และ $in เพื่อดึงค่าที่ไม่รวมค่าอาร์เรย์ฟิลด์ที่ตรงกัน -
db.collection.find({
$expr: {
$not:{
$in: [
"$id",
"$subjectid"
]
}
}
}) สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
[
{
"_id": ObjectId("5a934e000102030405000000"),
"id": "101",
"subjectid": [
"102"
]
}
]