Homework 5.1
db.posts.aggregate([{$unwind:"$comments"},{$group:{_id:"$comments.author",comments:{$sum:1}}},{$sort:{comments:-1}},{$limit:1}])
{ "_id" : "Elizabet Kleine", "comments" : 503 }
Homework 5.2
db.zips.aggregate([
{$group:{_id:{state:"$state",city:"$city"},pop:{$sum:"$pop"}}}
,{$match:{pop:{$gt:25000}}}
,{$group:{_id:"$_id.state",pop:{$avg:"$pop"}}}
])
db.zips.aggregate([
{$match:{$or:[{state:"CA"},{state:"NY"}]}}
,{$group:{_id:{state:"$state",city:"$city"},pop:{$sum:"$pop"}}}
,{$match:{pop:{$gt:25000}}}
,{$group:{_id:null,pop:{$avg:"$pop"}}}
])
{ "_id" : null, "pop" : 44804.782608695656 }
Homework 5.3
db.grades.aggregate([
{$unwind:"$scores"}
,{$match:{"scores.type":{$ne:"quiz"}}}
,{$group:{_id:{class:"$class_id",student:"$student_id"},score:{$avg:"$scores.score"}}}
,{$group:{_id:"$_id.class",score:{$avg:"$score"}}}
,{$sort:{score:-1}}
,{$limit:1}
])
{ "_id" : 1, "score" : 64.50642324269175 }
Homework 5.4
db.zips.aggregate([
{$match:{city:/^\d/}}
,{$group:{_id:null,pop:{$sum:"$pop"}}}
])
{ "_id" : null, "pop" : 298015 }
-eof-