Database
[{"uid":1,"score":10},{"uid":2,"score":11},{"uid":3,"score":1},{"uid":4,"score":6},{"uid":5,"score":2},{"uid":6,"score":3},{"uid":7,"score":8},{"uid":8,"score":10}]
Query
db.collection.aggregate([{"$bucket":{"groupBy":"$score","boundaries":[0,4,7],"default":7,"output":{"total":{"$sum":1},"top_frustrated":{"$topN":{"n":3,"sortBy":{"score":-1},"output":{"uid":"$uid","score":"$score"}}}},}},])