MongoDB - 使用组进行聚合排序不起作用

时间:2016-08-23 11:48:51

标签: ruby-on-rails mongodb mongodb-query aggregation-framework

我在Ruby on Rails中有一个关于mongo的查询:

collection.aggregate([
    {
        '$match' => {
          :user_id => '12345',
          :type => "view"
        }
    },
    {
        '$group' => {
            :_id => '$room_id',
            'message_time' => {'$first' => '$message_time'},
            'message_text' => {'$first' => '$message_text'},
            'from' => {'$first' => '$message.from_user'}
        }
    },
    {
      '$skip' => 0
    },
    {
      '$limit' => 10
    },
    {'$sort' => {"message_time" => -1}}
  ])

示例消息:

{
  "_id":"5705248b6cd7b15aca000018", 
  "message_time":"2016-08-23T16:57:12Z",
  "message_text":"Example text",
  "from": {
    "id":"1234",
    "name":"Test user",
    "first_name":"Test"
  }
  ,"room_id":"1231231231"
}

在留言时我的价值如下:2016-08-22T12:49:29Z 即使我将排序更改为message_text,它也无法正确排序。

任何想法如何排序?我尝试将group中的所有内容放入_id字段,然后按_id.message_time排序,但仍然返回错误的结果。

0 个答案:

没有答案