2011-05-01 40 views
3
chat = { 
     messages: [ { body:"asdf", timestamp: 234256243 }, 
       { body:"asdf", timestamp: 234256241 }, 
       { body:"asdf", timestamp: 544256244 }, 
}; 

假設我有一個聊天室的集合。我想找到最新消息的房間。我如何根據消息的時間戳進行排序?如何在MongoDB中執行這種排序? (嵌入式分類)

chat.find().sort...by messages array timestamp descending. 

這是一個嵌入式排序。

回答

5

目前還沒有支持在MongoDB中對嵌入式數組進行排序。您需要使用您選擇的編程語言在客戶端進行排序。

0

或者,您可能希望向發佈新消息時更新的聊天室(父文檔)添加'latestMessage'屬性。

然後你可以通過chat.latestMessage降序來搜索和排序。

數據重複位,但讓您的生活更輕鬆。

6

事情發生了一年變化。 Mongodb現在支持嵌入式數組排序。

db.chat.find().sort({'messages.timestamp': -1}) 
相關問題