У меня есть 2 коллекции:агрегации MongoDB для различных значений
пользователя
{
_id: 'user_id1',
username: 'user1',
}
{
_id: 'user_id2',
username: 'user2',
}
{
_id: 'user_id3',
username: 'user3',
}
Входящие
{
_id: 'inbox_id1',
from: {_id: 'user_id1', username: 'user1'},
to: {_id: 'user_id2', username: 'user2'},
text: 'Hello there',
timestamp: new Date(),
}
{
_id: 'inbox_id2',
from: {_id: 'user_id1', username: 'user1'},
to: {_id: 'user_id2', username: 'user2'},
text: 'Trying again...',
timestamp: new Date(),
}
{
_id: 'inbox_id3',
from: {_id: 'user_id3', username: 'user3'},
to: {_id: 'user_id2', username: 'user2'},
text: 'You there?',
timestamp: new Date(),
}
Всякий раз, когда пользователь входит в его почтовый ящик, я хотел бы чтобы показать ему список тем, в который должен входить список lat сообщений от каждого пользователя. Поэтому в основном я хотел бы получить отдельные документы (на основе поля from._id
) и только последний документ (на основе поля timestamp
).
Таким образом, мои результаты для user2
должны включать только 2 документа (inbox_id2
и inbox_id3
).
Я знаю, что мне нужно использовать агрегацию для него, но не знаю, как именно.
Какова ваша версия сервера MongoDB? – styvane
Последний - 3.2 –