meteor,即使使用ISO8601数据格式,也不会正确排序日期

时间:2014-01-13 16:31:05

标签: javascript mongodb sorting meteor

问题

我的流星网站上有这个页面:twbrewing.com/blog我想按日期对博客文章进行排序。

如果我在控制台中执行以下操作:

BlogPosts.find({}, {sort: {date: -1, time: -1}})

它以错误的顺序返回帖子。这也是帖子显示顺序不正确的原因。

集合中返回的第一个doc的日期是:

date: "2013-12-16"

而第二篇文章的日期是:

date: "2014-01-02"

我相信这是正确的ISO 8601格式,所以我不确定它失败的原因。

附加代码

我从服务器发布:

Meteor.publish 'blogPosts', () ->
    BlogPosts.find({}, {sort: {date: -1, time: -1}})

订阅铁路由器数据方法:

# Blog
  @route 'blog',
    path: '/blog/'
    waitOn: ->
      Meteor.subscribe 'blogPosts'
    data: ->
      blogPosts: BlogPosts.find({}, {sort: {date: -1, time: -1}})

2 个答案:

答案 0 :(得分:5)

也许您错过了sort说明符?

BlogPosts.find({}, {sort: {date: -1, time: -1}})

答案 1 :(得分:2)

我希望我可以将这篇文章的标题更改为“关于游标和未复制排序失败的noob问题”。

我的博客帖子输入错误,但这是代码错误:

BlogPosts.find({}, {date: -1, time: -1})

而不是:

BlogPosts.find({},sort:{ {date: -1, time: -1}})

然后在修复代码之后,重新部署表明问题本身没有解决。我试图在控制台中调试我误解了游标应该如何返回...例如作为一个新手,他们应该返回无序是一个惊喜(我不理解DDP和/或mongo足够......虽然我不记得在Meteor中看过它或我读过的mongo文档)

数据库重置和第二次重新部署修复了一直存在的问题。所以我想我会为用户提供错误。