ใช้ตัวดำเนินการ $avg พร้อมกับกรอบงานรวม ให้เราสร้างคอลเลกชันที่มีเอกสารก่อน ที่นี่ หนึ่งในฟิลด์คือ StudentScore -
> db.averageReturiningNullDemo.insertOne(
{"StudentDetails" : { "StudentScore" : 89 }
});
{
"acknowledged" : true,
"insertedId" : ObjectId("5ce9822e78f00858fb12e927")
}
> db.averageReturiningNullDemo.insertOne(
{"StudentDetails" : { "StudentScore" : 34 }
});
{
"acknowledged" : true,
"insertedId" : ObjectId("5ce9822e78f00858fb12e928")
}
> db.averageReturiningNullDemo.insertOne(
{"StudentDetails" : { "StudentScore" : 78 }
});
{
"acknowledged" : true,
"insertedId" : ObjectId("5ce9822e78f00858fb12e929")
} ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงเอกสารทั้งหมดจากคอลเลกชันโดยใช้วิธี find() -
> db.averageReturiningNullDemo.find().pretty();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{
"_id" : ObjectId("5ce9822e78f00858fb12e927"),
"StudentDetails" : {
"StudentScore" : 89
}
}
{
"_id" : ObjectId("5ce9822e78f00858fb12e928"),
"StudentDetails" : {
"StudentScore" : 34
}
}
{
"_id" : ObjectId("5ce9822e78f00858fb12e929"),
"StudentDetails" : {
"StudentScore" : 78
}
} ต่อไปนี้คือการสอบถามถึงผลตอบแทนโดยเฉลี่ย -
> db.averageReturiningNullDemo.aggregate([
{
"$group": {
"_id": null,
"StudentScoreAverage": {
"$avg": "$StudentDetails.StudentScore"
}
}
}
]); สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" : null, "StudentScoreAverage" : 67 }