Mongoengine вдохновлен Django ORM, и, как и Django, он использует order_by для сортировки набора результатов. order_by принимает переменное количество строковых аргументов, которые являются именами полей (как определено в ваших документах), необязательно предшествующих " - " (для обозначения сортировки по убыванию, то есть с наивысшим первым).
Например:
class Person(Document):
first_name = StringField()
last_name = StringField()
age = IntField()
# later
people = Person.objects.order_by('last_name', '-age')