我在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
排序,但仍然返回错误的结果。