3

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

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

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

跳过参数是否在 Meteor 中起作用并且我犯了一个错误,或者是否有任何已知的错误?

4

2 回答 2

2

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

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

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

于 2013-02-01T05:01:34.383 回答
1

你只需要在服务器上形成

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

然后在客户端上

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

会发生什么:

  1. 您从 Mongo 收到 10 条最后一条消息的拆分,但顺序错误
  2. 您在客户端上运行格式化正确的顺序
于 2016-03-26T22:50:58.793 回答