2013-02-01 34 views
3

我正在使用Meteor写一个聊天程序。我需要按升序显示最近的10条消息。如何使用流星collection.find()与排序,跳过和限制

Messages.find({...}, {sort: {created: 1}, skip: getMessageCount()-10, limit: 10}); 

此代码只显示前10条消息。

跳过参数是否适用于流星,我犯了一个错误,还是有任何已知的错误?

回答

2

它返回前10条消息的原因是:{sort: {created: 1}},它返回值为created属性的升序。

你应该写{sort: {created: -1}},即。具有较高值created的记录将首先返回。

此外,假设created携带有效的日期值和时间戳,您应该插入它的parsed值,以便基于日期有效地执行排序。

+0

谢谢你的回答。这是我的帖子中的一个错字。在我的代码文件中,我有'code' {sort:{created:-1}}''code'。但是这给了我最初的信息。我真正想要的是最后一个位置(底部)的最新消息,以便我在我的网站上最后10条消息(排序:asc)并跳过其余部分。我希望这很好理解。 :) –

+0

btw:感谢日期解析提示! –

1

你只需要形成一个服务器上

Messages.find({...}, {sort: {created: -1}, limit: 10});

然后在客户端上

Messages.find({...}, {sort: {created: 1}})

会发生在这里什么:

  1. 你从蒙戈获得的10分裂最后一条消息但出错 order
  2. You r un格式化客户端上的正确订单