Sử dụng $where với hàm JavaScript lọc mảng và đếm số lần xuất hiện. Tạo collection:
> db.demo188.insertOne({
"ListOfData": [ { "Data": 100 }, { "Data": 200 }, { "Data": 100 } ]
});
{ "acknowledged": true, "insertedId": ObjectId("5e3ad1c203d395bdc21346bd") }
> db.demo188.insertOne({
"ListOfData": [ { "Data": 100 }, { "Data": 200 }, { "Data": 300 } ]
});
{ "acknowledged": true, "insertedId": ObjectId("5e3ad1c203d395bdc21346be") }
Hiển thị document.
Truy vấn tìm document có Data=100 xuất hiện > 1 lần:
> db.demo188.find({
"$where": function() {
return this.ListOfData.filter(function(d) {
return d.Data == 100;
}).length > 1;
}
})
Kết quả (chỉ document đầu tiên khớp):
{ "_id": ObjectId("5e3ad1c203d395bdc21346bd"), "ListOfData": [ { "Data": 100 }, { "Data": 200 }, { "Data": 100 } ] }