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

Truy vấn Group MongoDB đếm số lần điểm trùng lặp trong tài liệu

Để đế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: $group theo Marks, đếm Count: { $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ể $project là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.