Как я могу сортировать коллекцию Метеор по времени вставки?
Я работаю над своим первым проектом с использованием Meteor, и у меня возникают трудности с сортировкой.
У меня есть форма, в которой пользователи вводят афоризмы, которые затем отображаются в списке. В настоящее время последние афоризмы автоматически отображаются в нижней части списка. Есть ли простой способ, чтобы самые последние появлялись в верхней части списка?
Я пробовал:
Template.list.aphorisms = function () {
return Aphorisms.find({}, {sort: {$natural:1}});
};
И я в тупике, потому что в документах Meteor не так много примеров.
Ответы
Ответ 1
Предполагая, что date_created
находится в допустимом формате даты вместе с меткой времени, вы должны вставить проанализированное значение date_created
с помощью функции Date.parse()
javascript, которая дает количество миллисекунд между 1 января 1970 года и датой значение, содержащееся в date_created
.
В результате этого последняя добавленная запись будет содержать большее значение date_created
, чем предыдущая запись.
Теперь, извлекая записи, сортируйте курсор в порядке убывания параметра date_created
как:
Aphorisms.find({}, {sort: {date_created: -1}});
Это будет сортировать записи от более старых до более старых.
Надеюсь, что это поможет.
Ответ 2
Я нашел следующее решение:
Template.list.aphorisms = function () {
return Aphorisms.find().fetch().reverse();
};
Учитывая, что вся коллекция уже существует в обратном порядке, которую вы хотите, вы можете просто создать массив всех объектов и изменить порядок.