如何在插入时对Meteor集合进行排序?

时间:2012-12-19 17:18:59

标签: mongodb meteor mongodb-query

我正在使用Meteor处理我的第一个项目,并且在排序方面遇到了一些困难。

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

我试过了:

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

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

2 个答案:

答案 0 :(得分:107)

假设date_created与时间戳一起使用的是有效的日期格式,您应该使用date_created javascript函数插入解析后的Date.parse()值,它给出了两者之间的毫秒数。 1970年1月1日和date_created中包含的日期值。

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

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

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

这会将记录从较新的分类到较旧的分类。

希望这有帮助。

答案 1 :(得分:9)

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

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

鉴于整个集合已经按照您想要的相反顺序存在,您只需创建一个包含所有对象的数组并颠倒顺序。