'Order the :class:`~mongoengine.queryset.QuerySet` by the keys. The
order may be specified by prepending each of the keys by a + or a -.
Ascending order is assumed. If no keys are passed, existing ordering
is cleared instead.
:param keys: fields to order the query results by; keys may be
prefixed with **+** or **-** to determine the ordering direction'

def order_by(self, *keys):

    queryset = self.clone()
    old_ordering = queryset._ordering
    new_ordering = queryset._get_order_by(keys)
    if queryset._cursor_obj:
        if new_ordering:
            queryset._cursor_obj.sort(new_ordering)
        elif old_ordering:
            queryset._cursor_obj = None
    queryset._ordering = new_ordering
    return queryset
