我收集messages
了以下文件
{
"_id" : ObjectId("5164218f359f109fd4000012"),
"receiver_id" : ObjectId("5164211e359f109fd4000004"),
"sender_id" : ObjectId("5162de8a359f10cbf700000c"),
"body" : "Hello Billy!!!",
"readed" : false,
"updated_at" : ISODate("2013-04-09T14:11:27.17Z"),
"created_at" : ISODate("2013-04-09T14:11:27.17Z")
}
我需要查询给定用户(按reciever_id+sender_id 字段分组)并按created_at 排序的接收最后一条消息(不管是接收还是发送)。
为了更好地解释这个问题,我在 SQL 中是如何做到的一个例子:
SELECT DISTINCT ON (sender_id+receiver_id) * FROM messages
ORDER by (sender_id+receiver_id), created_at DESC
WHERE sender_id = given_user or receiver_id = given_user
我不明白如何用mondodb解决这个问题。