ใช้ $where และฟังก์ชัน filter
เพื่อหาเอกสารที่มีค่าเดิมซ้ำกันในอาร์เรย์ ให้ใช้ $where ร่วมกับฟังก์ชัน JavaScript filter() นับจำนวนครั้งที่ปรากฏ
> db.demo188.insertOne({ "ListOfData": [ { "Data": 100 }, { "Data": 200 }, { "Data": 100 } ] });
คำสั่งหาเอกสารที่ Data=100 ปรากฏมากกว่า 1 ครั้ง:
db.demo188.find({ "$where": function() { return this.ListOfData.filter(function(d) { return d.Data == 100; }).length > 1; } })
ผลลัพธ์คืนเฉพาะเอกสารแรกที่มี 100 ซ้ำ 2 ครั้ง