Прежде всего, вы можете ответить на один простой вопрос: как отсортировать документы по массиву?Да, я тоже не знаю ..
Я полагаю, что вы можете сортировать по определенной роли, используя позиционный оператор:
db.users.find().sort({'roles.0.name':1})
Но я не уверен и не могу это проверитьПравильно знаешь и мб это не совсем то что тебе нужно.В любом случае вы можете проверить и вернуться с результатами, иначе я выясню это завтра.