Как вернуть данные из другого документа mongo?

Пример на node.js (express):

exports.postNewsLoad = function(request, response){
    
    if ( !request.body.page ) return response.sendStatus(400);
    
    if (!/^(0|[0-9]\d*)$/.test(request.body.page)) return response.sendStatus(400);
    
    let page_post = Number(request.body.page),
        perPage = 5,
        page = Math.max(0, page_post);
    
    News.find({visibility:1},{ _id: 0, content: 0, __v: 0 }).limit(perPage).skip(perPage * page).sort([['date_add', -1]]).exec(function(err, allNews) {
        News.count().exec(function(err, count) {
            response.status(200).json({
                status: 'succes',
                data: allNews,
                page: page,
                pages: count / perPage
            })
        });
    });
    
};

Здесь я получаю выборку новостей. Есть поле ID Автора, а чтобы получить имя автора, мне нужно сделать ещё один запрос к другому документу (выборку по ID Автора). Как это реализуется? Это же функция и она возвращает ответ, я не могу внутри неё ещё одну функцию написать..


Ответы (1 шт):

Автор решения: School
const news = News.find({visibility:1},{ _id: 0, content: 0, __v: 0 })
.limit(perPage)
.skip(perPage * page)
.sort([['date_add', -1]])

news = news.map((m)=>{
    return {
        ...m,
        author: author.find({id:m.authorId})
    }

})
→ Ссылка