mongodb - how can I find the average of the sums of a field? -


i have documents looks this

{ parentid: 2,  childid: 4, data: 7 }, { parentid: 2,  childid: 3, data: 5 }, { parentid: 2,  childid: 3, data: 1 } 

i pull average of sum of data grouped childid parentid = specific id.

for example data return given parent id (2) is

((5 + 1) + (7)) / 2 

is there way nest $sum inside $avg or need return list of sums grouped childid , average them myself?

first $sum data group childid find $avg of sums.

db.collection.aggregate(     [         { "$match": { "parentid": 2 }},          { "$group": { "_id": "$childid", "sumdata": { "$sum": "$data" }}},         { "$group": { "_id": "null", "avgdata": { "$avg": "$sumdata" }}},      ] ) 
{ "avgdata" : 6.5 } 

Comments

Popular posts from this blog

apache - PHP Soap issue while content length is larger -

asynchronous - Python asyncio task got bad yield -

javascript - Complete OpenIDConnect auth when requesting via Ajax -