Ответ 1

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')