หากต้องการจับคู่เอกสารกับฟิลด์ที่ไม่มีค่าในอาร์เรย์ ให้ใช้ $nin ให้เราสร้างคอลเลกชันที่มีเอกสาร -
> db.demo180.insertOne({"Scores":["80","90","110"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e3988a69e4f06af551997fb")
}
> db.demo180.insertOne({"Scores":["110","70","60"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e3988b79e4f06af551997fc")
}
> db.demo180.insertOne({"Scores":["40","70","1010"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e3988cc9e4f06af551997fd")
} แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -
> db.demo180.find();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" : ObjectId("5e3988a69e4f06af551997fb"), "Scores" : [ "80", "90", "110" ] }
{ "_id" : ObjectId("5e3988b79e4f06af551997fc"), "Scores" : [ "110", "70", "60" ] }
{ "_id" : ObjectId("5e3988cc9e4f06af551997fd"), "Scores" : [ "40", "70", "1010" ] } ต่อไปนี้เป็นแบบสอบถามเพื่อจับคู่เอกสารกับเขตข้อมูลที่ไม่มีค่าในอาร์เรย์ -
> db.demo180.aggregate({ "$match": { "Scores": { "$nin": ["110","90"] } } }).pretty(); สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{
"_id" : ObjectId("5e3988cc9e4f06af551997fd"),
"Scores" : [ "40", "70", "1010" ]
}