MongoDB में average से ऊपर के values वाले documents select करने के लिए aggregate() का उपयोग करें। Average find करने के लिए $avg का उपयोग करें।
Collection बनाना
> 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") }
सभी Documents Display करना
> db.demo552.find();
Output:
{ "_id" : ObjectId("5e8e3b1c9e5f92834d7f05ea"), "values" : 10 }
{ "_id" : ObjectId("5e8e3b1f9e5f92834d7f05eb"), "values" : 50 }
{ "_id" : ObjectId("5e8e3b289e5f92834d7f05ec"), "values" : 40 }
Average से ऊपर के Documents Select करने का Query
> var findAvg = db.demo552.aggregate([
... { "$group": { "_id": "null", Average: { "$avg": "$values" }}}
... ]).toArray()[0]["Average"];
> db.demo552.find({ "values": { "$gt": findAvg } })
Output (Average = 33.33, इससे ऊपर 50 और 40):
{ "_id" : ObjectId("5e8e3b1f9e5f92834d7f05eb"), "values" : 50 }
{ "_id" : ObjectId("5e8e3b289e5f92834d7f05ec"), "values" : 40 }
व्याख्या: पहले aggregate से average calculate किया (33.33), फिर variable में store करके find() में $gt (greater than) operator से average से बड़े values वाले documents find किए।