如何使用meteors collection.find()以及sort,skip和limit

时间:2013-02-01 00:48:56

标签: javascript meteor

我正在使用Meteor编写聊天程序。我需要按升序显示10条最新消息。

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

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

跳过参数是否在Meteor中有效且我犯了错误,或者是否有任何已知的错误?

2 个答案:

答案 0 :(得分:2)

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

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

此外,假设created带有有效的日期值以及时间戳,您应该插入其parsed值,以便根据日期有效地执行排序。

答案 1 :(得分:1)

您只需要在服务器上形成

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

然后在客户端上

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

这将发生什么:

  1. 你从Mongo那里得到了10条最后的消息,但却是错误的 为了
  2. 您在客户端上运行格式正确的订单