Database

[{"_id":"1","name":"First","levelsCount":[{"_id":"level_1","number":1},{"_id":"level_2","number":3},{"_id":"level_3","number":1},{"_id":"level_4","number":8}]},{"_id":"2","name":"Second","levelsCount":[{"_id":"level_1","number":5},{"_id":"level_2","number":2},{"_id":"level_3","number":1},{"_id":"level_4","number":3}]},{"_id":"3","name":"Third","levelsCount":[{"_id":"level_1","number":1},{"_id":"level_2","number":3},{"_id":"level_3","number":2},{"_id":"level_4","number":3}]}]

Query

db.collection.aggregate([{$sort:{"levelsCount._id":1,"levelsCount.number":-1}},{$addFields:{levelsCount:{$map:{input:"$levelsCount",in:{$arrayToObject:[[{k:"$$this._id",v:"$$this.number"}]]}}}}}])

Result