Để đếm số lần xuất hiện của mỗi giá trị (frequency), dùng $group với $sum: 1. Tạo collection:
> db.demo676.insertOne({"Marks":87});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea41eed04263e90dac943f2") }
> db.demo676.insertOne({"Marks":75});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea41ef304263e90dac943f3") }
> db.demo676.insertOne({"Marks":87});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea41ef404263e90dac943f4") }
> db.demo676.insertOne({"Marks":65});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea41ef704263e90dac943f5") }
> db.demo676.insertOne({"Marks":65});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea41ef804263e90dac943f6") }
Hiển thị dữ liệu (87: 2 lần, 75: 1 lần, 65: 2 lần):
> db.demo676.find();
Kết quả:
Aggregation:
$grouptheo Marks, đếmCount: { $sum: 1 }:> db.demo676.aggregate( { $group: { _id: {Marks: "$Marks" }, 'Count': { $sum: 1 } }})Kết quả tần suất từng điểm:
Giải thích:
_id: {Marks: "$Marks"}tạo nhóm distinct theo giá trị Marks.$sum: 1đếm mỗi document trong nhóm. Kết quả _id là object {Marks: value}, có thể$projectlàm phẳng:{ Marks: "$_id.Marks", Count: 1, _id: 0 }.Ứng dụng: Phân phối tần suất, phát hiện duplicate, thống kê categorical data.