Как вернуть данные из другого документа 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})
}
})