Sử dụng toán tử $avg trong stage $project để tính trung bình các giá trị trong mảng. Tạo collection:
> db.demo584.insertOne({"Marks":[75,50,85,60,80]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e91d827fd2d90c177b5bcc2") }
Hiển thị dữ liệu:
> db.demo584.find().pretty();
Aggregation tính trung bình mảng Marks:
> db.demo584.aggregate([ { $project: { MarksAvg: { $avg: "$Marks" } } } ]);Kết quả: (75+50+85+60+80)/5 = 70
Lưu ý:
$avgtrong$projecttính trung bình của mảng trong cùng một tài liệu. Để tính trung bình trên nhiều tài liệu, dùng$avgtrong$group:{$group: {_id: null, avgMarks: {$avg: "$Marks"}}}(sẽ tự unwind mảng).