В mongoDB вы возвращаете элементы, соответствующие запросу find.Так что:
Example.objects().order_by('-comments__date')
Вы просто упорядочиваете Example
объекты по дате последнего комментария.Язык запросов предназначен для сопоставления, поэтому не меняет результаты / порядок возвращаемого списка.Вы можете использовать SortedListField , который гарантирует сортировку списка при сохранении, если вам нужно обеспечить порядок.Тем не менее, здесь есть возможное условие гонки, поскольку оно устанавливает весь список.Оператор $push
является лучшим, но это означает, что комментарии будут стеком, а самый старый будет добавлен в конец.
Может потребоваться альтернативная схема с comments
в их собственной коллекции или в mongoDB 2.2.Структура агрегации может быть использована для сортировки комментариев.