Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Truy vấn MongoDB tìm giá trị xuất hiện nhiều lần trong mảng

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 } ] }