chat = {
messages: [ { body:"asdf", timestamp: 234256243 },
{ body:"asdf", timestamp: 234256241 },
{ body:"asdf", timestamp: 544256244 },
};
假设我有一组聊天室。我想找到最新消息的房间。如何按消息的时间戳排序?
chat.find().sort...by messages array timestamp descending.
这是一种嵌入式排序。
答案 0 :(得分:6)
事情在一年内发生了变化。 Mongodb现在支持嵌入式数组排序。
db.chat.find().sort({'messages.timestamp': -1})
答案 1 :(得分:5)
目前还没有支持在MongoDB中对嵌入式数组进行排序。您需要使用您选择的编程语言在客户端进行排序。
答案 2 :(得分:0)
或者,您可能希望向聊天室(父文档)添加“latestMessage”属性,每当发布新邮件时,该属性都会更新。
然后你可以通过chat.latestMessage降序搜索和订购。
重复数据,但让您的生活更轻松。