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: วิธีจัดกลุ่มตามหลายฟิลด์

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *