我正在使用Meteor处理我的第一个项目,并且在排序方面遇到了一些困难。
我有一个表单,用户输入格式然后显示在列表中。目前最新的格言会自动显示在列表的底部。是否有一种简单的方法可以让最新的内容出现在列表顶部?
我试过了:
Template.list.aphorisms = function () {
return Aphorisms.find({}, {sort: {$natural:1}});
};
我很难过,因为Meteor文档没有很多例子。
答案 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();
};
鉴于整个集合已经按照您想要的相反顺序存在,您只需创建一个包含所有对象的数组并颠倒顺序。