ใช้ตัวดำเนินการ $eq เพื่อจับคู่อาร์เรย์ทั้งหมด (exact array match) โดยไม่ต้องใช้ $elemMatch เริ่มต้นด้วยการสร้างคอลเลกชันตัวอย่าง:
> db.equalDemo.insertOne({_id:1,"StudentFriendNames":["John","Carol","Sam"]});
{ "acknowledged" : true, "insertedId" : 1 }
> db.equalDemo.insertOne({_id:2,"StudentFriendNames":null});
{ "acknowledged" : true, "insertedId" : 2 }
> db.equalDemo.insertOne({_id:3,"StudentFriendNames":["Carol"]});
{ "acknowledged" : true, "insertedId" : 3 }
> db.equalDemo.insertOne({_id:4,"StudentFriendNames":["Sam"]});
{ "acknowledged" : true, "insertedId" : 4 }
แสดงเอกสาร:
> db.equalDemo.find();
คิวรี่ค้นหาเอกสารที่ StudentFriendNames เท่ากับอาร์เรย์ ["Carol"] ทุกประการ (ลำดับและจำนวนต้องตรง):
> db.equalDemo.find({"StudentFriendNames":{$eq:["Carol"]}});สรุปการจับคู่อาร์เรย์:
{field: ["a", "b"]}หรือ{field: {$eq: ["a", "b"]}}- จับคู่อาร์เรย์ทั้งหมด (exact match){field: "a"}- จับคู่ถ้าอาร์เรย์มี "a" อยู่ (contains){field: {$elemMatch: {...- จับคู่ออบเจกต์ในอาร์เรย์ที่ตรงเงื่อนไขหลายอย่าง
ตัวอย่าง: เอกสาร _id:1 มี ["John","Carol","Sam"] ไม่ตรงกับ ["Carol"] เพราะความยาวและลำดับต่างกัน