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

Tổng hợp (aggregate) document mảng trong MongoDB

Sử dụng Aggregation Framework để tính toán trên mảng document lồng nhau.

Tạo collection với document:

> db.aggregateArrayDemo.insertOne(
    {
      "_id": 100,
      "UserDetails": [
        { "UserName": "John", "UserLoginYear": 2010 },
        { "UserName": "Carol", "UserLoginYear": 2019 }
      ]
    }
); { "acknowledged" : true, "insertedId" : 100 }

Hiển thị document:

> db.aggregateArrayDemo.find().pretty();

Kết quả:

{ "_id" : 100, "UserDetails" : [ { "UserName" : "John", "UserLoginYear" : 2010 }, { "UserName" : "Carol", "UserLoginYear" : 2019 } ] }

Truy vấn Aggregation: lọc _id = 100, tính Min và Max của UserLoginYear trong mảng UserDetails:

> db.aggregateArrayDemo.aggregate([
  { $match: { _id: 100 } },
  {
    $project: {
      Minimum: { $min: "$UserDetails.UserLoginYear" },
      Maximum: { $max: "$UserDetails.UserLoginYear" }
    }
  }
]);

Kết quả:

{ "_id" : 100, "Minimum" : 2010, "Maximum" : 2019 }