Я думаю, вы путаете функцию populated () и функцию populate ().
Чтобы получить информацию об авторе для истории, нам нужно использовать команду populate следующим образом:
router.get("/stories/:id", async (req, res) => {
const result = await Story.findById(req.params.id).populate("author");
res.send(result);
});
Допустим, у нас есть этот человек:
{
"_id": "5e3c63ba3a178830dc497a00",
"name": "Name1",
"age": 33,
"__v": 0
}
И эта история от пользователя:
{
"_id": "5e3c63e93a178830dc497a02",
"author": "5e3c63ba3a178830dc497a00",
"title": "Story1",
"__v": 0
}
Результат будет таким, когда мы отправим запрос get на наш маршрут ( http://.../stories/5e3c63f33a178830dc497a02
)
{
"_id": "5e3c63e93a178830dc497a02",
"author": {
"_id": "5e3c63ba3a178830dc497a00",
"name": "Name1",
"age": 33,
"__v": 0
},
"title": "Story1",
"__v": 0
}
Чтобы получить все истории с информацией об авторе, мы можем использовать метод find () следующим образом:
router.get("/stories", async (req, res) => {
const result = await Story.find().populate("author");
res.send(result);
});