Как я могу отсортировать коллекцию метеоров по времени вставки?


Я работаю над своим первым проектом с использованием Meteor, и у меня возникли некоторые трудности с сортировкой.

У меня есть форма, где пользователи вводят афоризмы, которые затем отображаются в списке. В настоящее время самые последние афоризмы автоматически отображаются в нижней части списка. Есть ли простой способ, чтобы самые последние появились в верхней части списка вместо этого?

пробовал:

   Template.list.aphorisms = function () {
    return Aphorisms.find({}, {sort: {$natural:1}});
};

и я в тупике, потому что в документах Meteor не так много примеров.

2 56

2 ответа:

предполагая, что date_created находится в допустимом формате даты вместе с меткой времени, вы должны вставить анализируемое значение date_created С помощью Date.parse() функция javascript, которая дает количество миллисекунд между 1 января 1970 года и значением даты, содержащимся в date_created.

в результате этого, самая последняя добавленная запись будет содержать большее значение date_created чем запись, вставленная перед ним.

теперь при извлечении записей, сортировать курсор по убыванию орден date_created параметр as:

 Aphorisms.find({}, {sort: {date_created: -1}});

это будет сортировать записи от новых до старых.

надеюсь, что это помогает.

Я нашел следующее, чтобы быть более чистым решением:

   Template.list.aphorisms = function () {
      return Aphorisms.find().fetch().reverse();
   };

учитывая, что вся коллекция уже существует в обратном порядке, вы можете просто создать массив всех объектов и изменить порядок.