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で解決する方法がわかりません。