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

จะเลือกเอกสารที่มีค่าสูงกว่าค่าเฉลี่ยใน MongoDB ได้อย่างไร?


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