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

Đếm số phần tử trong mảng dựa trên giá trị trường cụ thể trong MongoDB

Sử dụng $unwind, $match và $group

Để đếm số lần xuất hiện của một giá trị trong mảng lồng nhau, cần "bẻ mảng" ($unwind), lọc ($match) rồi nhóm đếm ($group).

Dữ liệu mẫu

> db.demo726.insertOne({
  id: 101,
  details: [
    { Name: "Chris" },
    { Name: "Chris" },
    { Name: "Bob" }
  ]
});

Truy vấn đếm

db.demo726.aggregate([
  { $unwind: "$details" },
  { $match: { "details.Name": "Chris" } },
  {
    $group: {
      _id: "$details.Name",
      Total_Value: { $sum: 1 }
    }
  }
]);

Kết quả

{ "_id": "Chris", "Total_Value": 2 }

Truy vấn trả về số lần tên "Chris" xuất hiện trong mảng details.