Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

Sum และ Group By Multiple Columns คำนวณ Total Marks ใน MongoDB

การ Sum และ Group By หลาย Columns

สำหรับการนี้ ให้ใช้ aggregate() ร่วมกับ $group

สร้าง Collection พร้อมข้อมูล

> db.demo627.insertOne({id:101,"Name":"Chris","Marks":54});
{ "acknowledged" : true, "insertedId" : ObjectId("5e9acb306c954c74be91e6b2") }
> db.demo627.insertOne({id:102,"Name":"Bob","Marks":74});
{ "acknowledged" : true, "insertedId" : ObjectId("5e9acb3c6c954c74be91e6b3") }
> db.demo627.insertOne({id:101,"Name":"Chris","Marks":87});
{ "acknowledged" : true, "insertedId" : ObjectId("5e9acb426c954c74be91e6b4") }
> db.demo627.insertOne({id:102,"Name":"Mike","Marks":70});
{ "acknowledged" : true, "insertedId" : ObjectId("5e9acb4b6c954c74be91e6b5") }

แสดงเอกสารทั้งหมด

> db.demo627.find();

ผลลัพธ์:

{ "_id" : ObjectId("5e9acb306c954c74be91e6b2"), "id" : 101, "Name" : "Chris", "Marks" : 54 }
{ "_id" : ObjectId("5e9acb3c6c954c74be91e6b3"), "id" : 102, "Name" : "Bob", "Marks" : 74 }
{ "_id" : ObjectId("5e9acb426c954c74be91e6b4"), "id" : 101, "Name" : "Chris", "Marks" : 87 }
{ "_id" : ObjectId("5e9acb4b6c954c74be91e6b5"), "id" : 102, "Name" : "Mike", "Marks" : 70 }

คิวรี Sum Group By Multiple Columns

> db.demo627.aggregate([
...     {
...         "$group": {
...             "_id": {
...                 "id" : "$id",
...                 "Name":"$Name"
...             },
...             "Marks": { "$sum": "$Marks" }
...         }
...     },
...     {
...         "$group": {
...             "_id": {
...                 "id" : "$_id.id",
...                 "Name": "$_id.Name"
...             },
...             "TotalMarks": { "$sum": "$Marks" }
...         }
...     }
... ], { "allowDiskUse": true } ... );

ผลลัพธ์:

{ "_id" : { "id" : 101, "Name" : "Chris" }, "TotalMarks" : 141 }
{ "_id" : { "id" : 102, "Name" : "Bob" }, "TotalMarks" : 74 }
{ "_id" : { "id" : 102, "Name" : "Mike" }, "TotalMarks" : 70 }