Я использую Монго для хранения сообщений пользователей.
Это моя модель для коллекции.
_id // mongo id of the message
subject // subject of the message
msg // message
recipients // array of users id
sender // user id
inReplyTo // id of the message that i'm replying
references // array of all the ids of the conversation
sended // date of dispatch
Я хочу составить список из 30 сообщений на страницу, которые я получил. Если есть разговор, в списке я хочу видеть только последнее сообщение разговора.
Я использую Мангуста и nodejs .
Это 2 сообщения одного разговора.
[
// the first message of the conversation
{
"_id" : ObjectId("5b9a7218b83256001799a114"),
"inReplyTo" : null,
"references" : [ ],
"recipients" : [ 1, 2, 3 ],
"subject" : "Subject of the first message",
"msg" : "Text of the first message",
"sender" : 4,
"sended" : ISODate("2018-09-13T16:20:08.997+02:00"),
},
// the reply to the first message
{
"_id" : ObjectId("5b9bc0d67d6acc001732a58a"),
"inReplyTo" : ObjectId("5b9a7218b83256001799a114"),
"references" : [
ObjectId("5b9a7218b83256001799a114")
],
"recipients" : [ 4 ],
"subject" : "FDW: Subject of the first message",
"msg" : "Text of the reply",
"sender" : 1,
"sended" : ISODate("2018-09-14T16:08:22.934+02:00"),
}
]
Как использовать агрегат?
Или я должен фильтровать их после запроса? И как?