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

การรวม MongoDB / การดำเนินการทางคณิตศาสตร์เพื่อรวมคะแนนของนักเรียนที่เฉพาะเจาะจง


เพื่อผลรวม ใช้ aggregat() ร่วมกับ $sum ให้เราสร้างคอลเลกชันที่มีเอกสาร -

> db.demo434.insertOne({"Name":"Chris","Score":45});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e771603bbc41e36cc3cae93")
}
> db.demo434.insertOne({"Name":"David","Score":55});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e77161abbc41e36cc3cae94")
}
> db.demo434.insertOne({"Name":"Chris","Score":55});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e771624bbc41e36cc3cae95")
}

แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -

> db.demo434.find();

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

{ "_id" : ObjectId("5e771603bbc41e36cc3cae93"), "Name" : "Chris", "Score" : 45 }
{ "_id" : ObjectId("5e77161abbc41e36cc3cae94"), "Name" : "David", "Score" : 55 }
{ "_id" : ObjectId("5e771624bbc41e36cc3cae95"), "Name" : "Chris", "Score" : 55 }

ต่อไปนี้เป็นคะแนนรวมคำถามของนักเรียนคนหนึ่ง -

> db.demo434.aggregate([
...    { "$match": { "Name": "Chris"} },
...    { "$group": { "_id": null, "TotalScore": { "$sum": "$Score" } } }
... ]);

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

{ "_id" : null, "TotalScore" : 100 }