2013-02-01 35 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格式化客戶端上的正確訂單