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

Thực hiện SELECT COUNT GROUP BY trong MongoDB

MongoDB sử dụng Aggregation Framework để thực hiện tương đương với SELECT COUNT GROUP BY trong SQL.

Ví dụ minh họa

Tạo collection countGroupByDemo:

> db.countGroupByDemo.insertOne({"MaSinhVien": 10, "TenSinhVien": "John"});
> db.countGroupByDemo.insertOne({"MaSinhVien": 10, "TenSinhVien": "Carol"});
> db.countGroupByDemo.insertOne({"MaSinhVien": 20, "TenSinhVien": "Sam"});
> db.countGroupByDemo.insertOne({"MaSinhVien": 30, "TenSinhVien": "Mike"});
> db.countGroupByDemo.insertOne({"MaSinhVien": 30, "TenSinhVien": "David"});
> db.countGroupByDemo.insertOne({"MaSinhVien": 10, "TenSinhVien": "Maxwell"});
> db.countGroupByDemo.insertOne({"MaSinhVien": 20, "TenSinhVien": "Bob"});

Dữ liệu ban đầu:

{ "MaSinhVien": 10, "TenSinhVien": "John" }
{ "MaSinhVien": 10, "TenSinhVien": "Carol" }
{ "MaSinhVien": 20, "TenSinhVien": "Sam" }
{ "MaSinhVien": 30, "TenSinhVien": "Mike" }
{ "MaSinhVien": 30, "TenSinhVien": "David" }
{ "MaSinhVien": 10, "TenSinhVien": "Maxwell" }
{ "MaSinhVien": 20, "TenSinhVien": "Bob" }

Truy vấn aggregation

> db.countGroupByDemo.aggregate([
  {$group: {_id: "$MaSinhVien", dem: {$sum: 1}}}
]);

Kết quả:

{ "_id": 30, "dem": 2 }
{ "_id": 20, "dem": 2 }
{ "_id": 10, "dem": 3 }

Giải thích: $group nhóm theo MaSinhVien, $sum: 1 đếm số document trong mỗi nhóm.