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 }