Моя база данных выглядит так:
{email:"user", contacts:
[
{emailContact:"test", firstName:"test", lastName:"test", messages:
[
{email:"user", content:"hi", date:"ISODate(...)"}
{email:"test", content:"how are you?", date:"ISODate(...)"}
{email:"user", content:"im fine", date:"ISODate(...)"}
]
},
{emailContact:test2, firstName:"test2", lastName:"test2", messages:
[
{email:"user", content:"hahaha", date:"ISODate(...)"}
{email:"test2", content:"yea thats right", date:"ISODate(...)"}
{email:"user", content:"xd", date:"ISODate(...)"}
]
}
]
}
Мне нужно получить 2 последних сообщения от конкретного пользователя с данным контактом.
Я уже пробовал несколько похожих:
db.contacts.aggregate([{$match:{email:"user",emailContact:"test"}},{$unwind:{'contacts.messages'}},{$sort:{'contacts.messages.date':1,'contacts.messages.content':1,'contacts.messages.emailContact':1}},{$group:{who:'$email', content:'$content', date:{$last:'$date'}}}])
Спасибо за любую помощь