Database

[{score:7000,mapId:1,profileId:12},{score:400,mapId:1,profileId:6},{score:12000,mapId:1,profileId:12},{score:5000,mapId:1,profileId:12},{score:120,mapId:1,profileId:8}]

Query

db.collection.aggregate([{"$match":{mapId:1}},{"$setWindowFields":{"partitionBy":"$profileId","sortBy":{"score":-1},"output":{"rank":{$rank:{}}}}},{$match:{rank:1}},{"$unset":"rank"}])

Result