如何在MongoDB中执行此类操作? (嵌入式排序)

时间:2011-05-01 01:29:58

标签: mongodb database

chat = {
        messages: [ { body:"asdf", timestamp: 234256243 },
                 { body:"asdf", timestamp: 234256241 },
                 { body:"asdf", timestamp: 544256244 },
};

假设我有一组聊天室。我想找到最新消息的房间。如何按消息的时间戳排序?

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

这是一种嵌入式排序。

3 个答案:

答案 0 :(得分:6)

事情在一年内发生了变化。 Mongodb现在支持嵌入式数组排序。

db.chat.find().sort({'messages.timestamp': -1})

答案 1 :(得分:5)

目前还没有支持在MongoDB中对嵌入式数组进行排序。您需要使用您选择的编程语言在客户端进行排序。

答案 2 :(得分:0)

或者,您可能希望向聊天室(父文档)添加“latestMessage”属性,每当发布新邮件时,该属性都会更新。

然后你可以通过chat.latestMessage降序搜索和订购。

重复数据,但让您的生活更轻松。