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

Truy vấn MongoDB nhóm nhiều trường bằng Aggregation Framework

Sử dụng $group với _id là đối tượng chứa nhiều trường. Tạo collection:

> db.demo192.insertOne({ "Name": "Chris", "Age": 22 });
{ "acknowledged": true, "insertedId": ObjectId("5e3adb9f03d395bdc21346cd") }
> db.demo192.insertOne({ "Name": "David", "Age": 21 });
{ "acknowledged": true, "insertedId": ObjectId("5e3adba103d395bdc21346ce") }
> db.demo192.insertOne({ "Name": "Chris", "Age": 22 });
{ "acknowledged": true, "insertedId": ObjectId("5e3adba503d395bdc21346cf") }
> db.demo192.insertOne({ "Name": "Mike", "Age": 24 });
{ "acknowledged": true, "insertedId": ObjectId("5e3adbbf03d395bdc21346d0") }

Hiển thị document (có bản trùng Name+Age).

Pipeline aggregate nhóm theo cặp (Age, Name):

> db.demo192.aggregate([{ $group: { _id: { Age: "$Age", Name: "$Name" } } }]);

Kết quả (3 nhóm duy nhất):

{ "_id": { "Age": 24, "Name": "Mike" } }
{ "_id": { "Age": 21, "Name": "David" } }
{ "_id": { "Age": 22, "Name": "Chris" } }