59

我正在使用 Meteor 进行我的第一个项目,并且在排序时遇到了一些困难。

我有一个表单,用户可以在其中输入格言,然后将格言显示在列表中。目前最新的格言会自动显示在列表的底部。有没有一种简单的方法可以让最新的出现在列表的顶部?

我试过:

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

我很难过,因为 Meteor 文档没有很多例子。

4

2 回答 2

108

假设date_created是有效的日期格式以及时间戳,您应该插入date_created使用Date.parse()javascript 函数的解析值,它给出了 1970 年 1 月 1 日和包含在date_created.

因此,最近添加的记录将包含 date_created比在它之前插入的记录更大的值。

现在在获取记录时,按参数的降序对游标进行排序date_created

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

这会将记录从新到旧排序。

希望这可以帮助。

于 2012-12-20T07:06:37.887 回答
8

我发现以下是更清洁的解决方案:

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

鉴于整个集合已经以您想要的相反顺序存在,您可以简单地创建一个包含所有对象的数组并反转顺序。

于 2015-04-29T07:20:07.030 回答