Database
[{"floor_level":"12-1","battle_index":1,"party":[1,2,3,4]},{"floor_level":"12-1","battle_index":1,"party":[1,2,4,5]},{"floor_level":"12-1","battle_index":1,"party":[1,2,4,5]},{"floor_level":"12-2","battle_index":1,"party":[1,2,3,4]},{"floor_level":"12-2","battle_index":1,"party":[1,2,4,5]}]
Query
db.collection.aggregate([{"$group":{"_id":{level:"$floor_level",party:"$party",index:"$battle_index"},"count":{"$sum":1}}},{"$group":{"_id":{"level":"$_id.level","index":"$_id.index"},"parties":{"$push":{party:"$_id.party",count:"$count"}}}},{$addFields:{floor:{"$concat":["$_id.level","-",{$toString:"$_id.index"}]},_id:"$$REMOVE",index:"$$REMOVE"}}])