Database

[{"name":"Tony","userId":12345,"damage_dealt":[{"character_name":"James","stat_value":100243}]},{"name":"Jimmy","userId":12346,"damage_dealt":[{"character_name":"James","stat_value":1020243}]},{"name":"Tony","userId":12345,"damage_dealt":[{"character_name":"Lebron","stat_value":99900243}]}]

Query

db.collection.aggregate([{"$unwind":"$damage_dealt"},{"$group":{"_id":"$userId","value":{$top:{output:{character_name:"$damage_dealt.character_name",stat_value:"$damage_dealt.stat_value"},sortBy:{"damage_dealt.stat_value":-1}}},}},{"$project":{character_name:"$value.character_name",stat_value:"$value.stat_value"}},{"$sort":{"stat_value":-1}},{"$limit":30}])

Result