Mongoengine está inspirado en el ORM de Django y, al igual que Django, usa order_by
para ordenar el conjunto de resultados. order_by
toma un número variable de argumentos de cadena, que son los nombres de los campos (tal como se definen en sus documentos) opcionalmente precedidos por un "-
" (para indicar un orden descendente, es decir, el más alto primero).
Por ejemplo:
class Person(Document):
first_name = StringField()
last_name = StringField()
age = IntField()
# later
people = Person.objects.order_by('last_name', '-age')