ใช้ aggregate() ใน MongoDB เพื่อเลือกเอกสารที่มีค่ามากกว่าค่าเฉลี่ย เพื่อหาค่าเฉลี่ย ให้ใช้ $avg ใน MongoDB มาสร้างคอลเลกชันพร้อมเอกสารกันก่อน
> db.demo552.insertOne({values:10});{ "acknowledged" : true, "insertedId" : ObjectId("5e8e3b1c9e5f92834d7f05ea") } > db.demo552.insertOne({values:50});{ "acknowledged" : true, "insertedId" : ObjectId("5e8e3b1f9e5f92834d7f05eb") } > db.demo552.insertOne({values:40});{ "acknowledged" : true, "insertedId" : ObjectId("5e8e3b289e5f92834d7f05ec") }
แสดงเอกสารทั้งหมดจากคอลเลกชันด้วยเมธอด find()
> db.demo552.find();
จะได้ผลลัพธ์ดังนี้
{ "_id" : ObjectId("5e8e3b1c9e5f92834d7f05ea"), "values" : 10 } { "_id" : ObjectId("5e8e3b1f9e5f92834d7f05eb"), "values" : 50 } { "_id" : ObjectId("5e8e3b289e5f92834d7f05ec"), "values" : 40 }
คำสั่งสำหรับเลือกเอกสารที่มีค่ามากกว่าค่าเฉลี่ย
> var findAvg = db.demo552.aggregate([ ... { "$group": { "_id": "null", Average: { "$avg": "$values"} }} ... ]).toArray()[0]["Average"]; > db.demo552.find({ "values": { "$gt": findAvg } })
จะได้ผลลัพธ์ดังนี้
{ "_id" : ObjectId("5e8e3b1f9e5f92834d7f05eb"), "values" : 50 } { "_id" : ObjectId("5e8e3b289e5f92834d7f05ec"), "values" : 40 }