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

Tính trung bình các phần tử mảng trong MongoDB aggregation

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 ý: $avg trong $project tí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 $avg trong $group: {$group: {_id: null, avgMarks: {$avg: "$Marks"}}} (sẽ tự unwind mảng).