คุณสามารถใช้วิธี aggregate() สำหรับสิ่งนี้ ให้เราสร้างคอลเลกชันที่มีเอกสารก่อน
<ก่อนหน้า>> db.averageAggregationDemo.insertOne({"PlayerGameScore":45});{ "acknowledged" :true, "insertedId" :ObjectId("5c9ed66bd628fa4220163b95")}> db.averageAggregationDemo.insertOne({":55PlayerGameScore });{ "รับทราบ" :จริง "insertedId" :ObjectId("5c9ed671d628fa4220163b96")}> db.averageAggregationDemo.insertOne({"PlayerGameScore":65});{ "รับทราบ" :จริง "insertedObjectId" :}); "5c9ed676d628fa4220163b97")}> db.averageAggregationDemo.insertOne({"PlayerGameScore":35});{ "รับทราบ" :จริง "insertedId" :ObjectId("5c9ed67bd628fa4220163b98")}> regationDaveragein :16});{ "รับทราบ" :จริง "insertedId" :ObjectId("5c9ed701d628fa4220163b99")}ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงเอกสารทั้งหมดจากคอลเลกชันโดยใช้วิธี find()
> db.averageAggregationDemo.find().pretty();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้
{ "_id" :ObjectId("5c9ed66bd628fa4220163b95"), "PlayerGameScore" :45 }{ "_id" :ObjectId("5c9ed671d628fa4220163b96"), "PlayerGameScore" :55 }{ "_id" 5c97bfa6d67") , "PlayerGameScore" :65 }{ "_id" :ObjectId("5c9ed67bd628fa4220163b98"), "PlayerGameScore" :35 }{ "_id" :ObjectId("5c9ed701d628fa4220163b99"), "PlayerGameScoreing" :16 }การติดตาม ค่าเฉลี่ยของทั้งฟิลด์ด้วยการรวม:> db.averageAggregationDemo.aggregate({ "$group":{ "_id":null, "PlayerGameScoreAverage":{ "$avg":"$PlayerGameScore" } } } } );
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้
{ "_id" :null "PlayerGameScoreAverage" :43.2 }