สำหรับกรณีนี้ ให้ใช้ Regular Expression (Regex) ในเมธอด find() ของ MongoDB เริ่มต้นด้วยการสร้างคอลเลกชันพร้อมเอกสาร:
> db.demo228.insertOne({"Subjects":["MongoDB","Java"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e3fa51f03d395bdc213473b")
}
> db.demo228.insertOne({"Subjects":["MongoDB","Java","MySQL"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e3fa52c03d395bdc213473c")
}
แสดงเอกสารทั้งหมดในคอลเลกชันด้วยเมธอด find():
> db.demo228.find();
ผลลัพธ์ที่ได้:
{ "_id" : ObjectId("5e3fa51f03d395bdc213473b"), "Subjects" : [ "MongoDB", "Java" ] }
{ "_id" : ObjectId("5e3fa52c03d395bdc213473c"), "Subjects" : [ "MongoDB", "Java", "MySQL" ] }
คำสั่งค้นหาเอกสารที่มีรายการในอาร์เรย์อย่างน้อยหนึ่งรายการไม่อยู่ในอีกอาร์เรย์หนึ่ง (โดยใช้ Regex แบบ Negative Lookahead):
> db.demo228.find({ "Subjects": /^(?!MongoDB|Java)/ });
ผลลัพธ์ที่ได้ - พบเฉพาะเอกสารที่มี "MySQL" ซึ่งไม่อยู่ในรายการ "MongoDB" หรือ "Java":
{ "_id" : ObjectId("5e3fa52c03d395bdc213473c"), "Subjects" : [ "MongoDB", "Java", "MySQL" ] }