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

จะรับคะแนนเฉลี่ยใน MongoDB ตามรหัสที่ซ้ำกันได้อย่างไร


สำหรับค่าเฉลี่ยใน MongoDB ให้ใช้ $avg ให้เราสร้างคอลเลกชันที่มีเอกสาร ที่นี่ เรามีรหัสที่ซ้ำกันพร้อมการจัดเรตสำหรับแต่ละรายการ -

> db.demo606.insertOne({id:1,rating:5});{ "acknowledged" :true, "insertedId" :ObjectId("5e972dfbf57d0dc0b182d623")}> db.demo606.insertOne({id:1) ,คะแนน:4});{ "รับทราบ" :จริง "insertedId" :ObjectId("5e972dfef57d0dc0b182d624")}> db.demo606.insertOne({id:2,rating:3});{ "รับทราบ":จริง "insertedId" :ObjectId("5e972e09f57d0dc0b182d625")}> db.demo606.insertOne({id:1,rating:null});{ "รับทราบ" :จริง "insertedId" :ObjectId (") demo606.insertOne({id:2,rating:null});{ "acknowledged" :true, "insertedId" :ObjectId("5e972e15f57d0dc0b182d627")}> db.demo606.insertOne({id:2,rating:3});{ "รับทราบ" :จริง "insertedId" :ObjectId("5e972e1bf57d0dc0b182d628")}

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

> db.demo606.find();

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

{ "_id" :ObjectId("5e972dfbf57d0dc0b182d623"), "id" :1, "rating" :5 }{ "_id" :ObjectId("5e972dfef57d0dc0b182d624"), "id" :4, "การจัดอันดับ" }{ "_id" :ObjectId("5e972e09f57d0dc0b182d625"), "id" :2, "rating" :3 }{ "_id" :ObjectId("5e972e0ef57d0dc0b182d626"), "id" :1, "rating}{" :null "_id" :ObjectId("5e972e15f57d0dc0b182d627"), "id" :2, "rating" :null }{ "_id" :ObjectId("5e972e1bf57d0dc0b182d628"), "id" :2, "rating" ก่อน :3> 

ต่อไปนี้เป็นแบบสอบถามเพื่อรับคะแนนเฉลี่ยตามรหัสที่ซ้ำกัน -

> db.demo606.aggregate(... [... { "$group":{... "_id":"$id",... "AverageRating":{ "$avg":{ "$ifNull":["$rating",0 ] } }... }}... ]... );

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

{ "_id" :2, "AverageRating" :2 }{ "_id" :1, "AverageRating" :3 }