Mongodb: วิธีคำนวณค่าเฉลี่ยของฟิลด์
คุณสามารถใช้วิธีการต่อไปนี้เพื่อคำนวณค่าเฉลี่ยของฟิลด์ใน MongoDB:
วิธีที่ 1: คำนวณค่าเฉลี่ยของฟิลด์
db.collection.aggregate([{ $group : {_id: null , avg_val:{$avg: " $valueField "}}}])
วิธีที่ 2: คำนวณค่าเฉลี่ยของฟิลด์ต่อกลุ่ม
db.collection.aggregate([{ $group : {_id: " $groupField ", avg_val:{$avg: " $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 , avg_val:{$avg: " $points "}}}])
แบบสอบถามนี้ส่งกลับผลลัพธ์ต่อไปนี้:
{ _id: null , avg_val: 26 }
จากผลลัพธ์เราจะเห็นว่าค่าเฉลี่ยในช่องคะแนนคือ 26
เราสามารถตรวจสอบได้ด้วยตนเองว่าสิ่งนี้ถูกต้องโดยการเฉลี่ยค่าคะแนนด้วยตนเอง:
คะแนนเฉลี่ย: (30 + 30 + 20 + 25 + 25) / 5 = 26
ตัวอย่างที่ 2: คำนวณค่าเฉลี่ยของฟิลด์ตามกลุ่ม
เราสามารถใช้รหัสต่อไปนี้เพื่อคำนวณค่าเฉลี่ยของฟิลด์ คะแนน ซึ่งจัดกลุ่มตามฟิลด์ ทีม :
db.teams.aggregate([{ $group : {_id: " $team ", avg_val:{$avg: " $points "}}}])
แบบสอบถามนี้ส่งกลับผลลัพธ์ต่อไปนี้:
{ _id: ' Spurs ', avg_val: 23.333333333333332 } { _id: ' Mavs ', avg_val: 30 }
จากผลลัพธ์เราจะเห็นได้ว่า:
- คะแนนเฉลี่ยของสเปอร์สอยู่ที่ 23.33
- ค่าคะแนนเฉลี่ยสำหรับ Mavs คือ 30
หมายเหตุ : คุณสามารถค้นหาเอกสารฉบับเต็มสำหรับฟังก์ชัน $avg ได้ที่นี่
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่นๆ ใน MongoDB:
MongoDB: วิธีเพิ่มฟิลด์ใหม่
MongoDB: วิธีลบฟิลด์
MongoDB: วิธีจัดกลุ่มตามและนับ
MongoDB: วิธีจัดกลุ่มตามหลายฟิลด์