Если подход Рено (добавление явного поля с порядком сортировки) не работает для вашего варианта использования, я бы обычно ставил префикс существующих значений поля position
с порядком сортировки. Чтобы они стали:
"1 - Head of department"
"2 - Senior Lecturer"
"3 - Lecturer"
Таким образом, вы сможете просто отсортировать по полю position
и получить их в правильном порядке. Если вы не хотите показывать эти числовые префиксы пользователю, вы можете затем скрыть их в своем коде пользовательского интерфейса.
РЕДАКТИРОВАТЬ По Jay
Единственная потенциальная проблемав приведенном выше случае, если было добавлено больше позиций, например, позиция 10 - Ассистент помощника будет сортироваться после 1 - начальник отдела . Это НЕ проблема, если у вас есть только 10 уровней позиции (0-9)
Это можно исправить, заполнив позиции таким образом, чтобы все они имели одинаковое количество цифр;
001 - Head of Dept
002 - Senior Lecturer
.
.
.
010 - Assistant's Assistant