Итак, скажем, у меня 3 блоггера. У каждого из них много сообщений.Выберите последнее сообщение для каждого блоггера в коллекции
Я хочу выбрать последнее сообщение для каждого из них.
В настоящее время у меня есть этот псевдо код:
Bloggers.find({name: {$in: ['John','Mike','Arny']}}, (err, bloggers) => {
bloggers.forEach(blogger => {
blogger.latest_post = Posts.find({author: blogger.name}).sort({date: -1}).limit(1);
})
displayItSomehow(bloggers);
})
Здесь имя блоггера является имя группы. В каждой группе есть много документов, но мне нужно только одно в соответствии с некоторыми критериями.
Blogger коллекции, как это:
{name: 'John', id: 1},
{name: 'Mike', id: 2},
{name: 'Arny', id: 3}
Сообщений Коллекция:
{ title: 'title1', text: 'blablabla', date: 111, author: 1 },
{ title: 'Nowadays football became...', text: 'blablabla', date: 112, author: 1 },
{ title: 'title1', text: 'blablabla', date: 113, author: 2 },
{ title: 'The story of my neighbor starts when...', text: 'blablabla', date: 114, author: 2 },
{ title: 'title1', text: 'blablabla', date: 115, author: 3 },
{ title: 'title1', text: 'blablabla', date: 116, author: 3 },
{ title: 'Business and success are always were...', text: 'blablabla', date: 117, author: 3 }
Результат должен быть таким:
John: 'Nowadays football became...'
Mike: 'The story of my neighbor starts when...'
Arny: 'Business and success are always were...'
Итак, как я могу решить мою проблему на самом деле в мангуст ? Возможно ли это с одним запросом?
Пожалуйста, добавьте образец коллекции к сообщению как блоггеров, так и сообщений – Veeram
Is t шляпа лучше?) –