Mongodb: วิธีคำนวณผลรวมของฟิลด์
คุณสามารถใช้วิธีการต่อไปนี้เพื่อคำนวณผลรวมของค่าในช่องใน MongoDB:
วิธีที่ 1: คำนวณผลรวมของฟิลด์
db.collection.aggregate([{ $group : {_id: null , sum_val:{$sum: " $valueField "}}}])
วิธีที่ 2: คำนวณผลรวมของเขตข้อมูลตามกลุ่ม
db.collection.aggregate([{ $group : {_id: " $groupField ", sum_val:{$sum: " $valueField "}}}])
ตัวอย่างต่อไปนี้แสดงวิธีใช้แต่ละวิธีกับ ทีม เรียกเก็บเงิน พร้อมเอกสารต่อไปนี้:
db.teams.insertOne({team: " Mavs ", points: 30, rebounds: 8}) db.teams.insertOne({team: " Mavs ", points: 30, rebounds: 12}) db.teams.insertOne({team: " Spurs ", points: 20, rebounds: 7}) db.teams.insertOne({team: " Spurs ", points: 25, rebounds: 5}) db.teams.insertOne({team: " Spurs ", points: 25, rebounds: 9})
ตัวอย่างที่ 1: คำนวณผลรวมของฟิลด์
เราสามารถใช้โค้ดต่อไปนี้เพื่อคำนวณผลรวมของค่าในช่อง คะแนน :
db.teams.aggregate([{ $group : {_id: null , sum_val:{$sum: " $points "}}}])
แบบสอบถามนี้ส่งกลับผลลัพธ์ต่อไปนี้:
{ _id: null , sum_val: 130}
จากผลลัพธ์เราจะเห็นว่าผลรวมของค่าในช่องจุดคือ 130 .
เราสามารถตรวจสอบได้ด้วยตนเองว่าสิ่งนี้ถูกต้องโดยการคำนวณผลรวมของค่าคะแนนด้วยตนเอง:
ผลรวมคะแนน: 30 + 30 + 20 + 25 + 25 = 130
ตัวอย่างที่ 2: คำนวณผลรวมของฟิลด์ตามกลุ่ม
เราสามารถใช้โค้ดต่อไปนี้เพื่อคำนวณผลรวมของค่าในช่อง คะแนน ซึ่งจัดกลุ่มตามช่อง ทีม :
db.teams.aggregate([{ $group : {_id: " $team ", sum_val:{$sum: " $points "}}}])
แบบสอบถามนี้ส่งกลับผลลัพธ์ต่อไปนี้:
{ _id: ' Spurs ', sum_val: 60 } { _id: ' Mavs ', sum_val: 70 }
จากผลลัพธ์เราจะเห็นได้ว่า:
- คะแนนรวมของสเปอร์สคือ 60
- คะแนนรวมสำหรับ Mavs คือ 70
หมายเหตุ : คุณสามารถค้นหาเอกสารฉบับเต็มสำหรับฟังก์ชัน $sum ได้ที่นี่
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่นๆ ใน MongoDB:
วิธีการคำนวณค่ามัธยฐานใน MongoDB
วิธีการคำนวณค่าเฉลี่ยใน MongoDB
วิธีการคำนวณค่าสูงสุดใน MongoDB