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