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

เลือกเอกสารที่มีค่ามากกว่าค่าเฉลี่ยใน MongoDB


ใช้ 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 }