在某些情况下,我正在检查文档是否已存在,如果不存在,则在创建新文档。我需要在文档中填充2个字段。我的问题是,在 .create 方法上不支持 .populate 方法,因为如果尝试这样做会出现错误。此外,。填充方法也不适用于返回的文档。如何正确填充新创建的文档?这是我的代码:
Favorite.create({ user: req.user._id, dishes: req.params.dishId })
.then((favorite) => {
favorite.populate('user');
favorite.populate('dishes');
console.log('Favorite marked', favorite);
res.statusCode = 200;
res.setHeader('Content-Type', 'application/json');
res.json(favorite);
}, (err) => next(err))
}
})
.catch((err) => next(err));
答案 0 :(得分:1)
您可以在Model.find方法之后使用填充方法。
创建的收藏夹将具有_id值,因此您可以通过_id查找收藏夹,然后按以下方式填充用户和菜肴:
Favorite.findById(favorite._id)
.populate("user")
.populate("dishes")
所有代码:
Favorite.create({ user: req.user._id, dishes: req.params.dishId })
.then(
favorite => {
console.log("Favorite marked", favorite);
const result = Favorite.findById(favorite._id)
.populate("user")
.populate("dishes");
res.statusCode = 200;
res.setHeader("Content-Type", "application/json");
res.json(result);
},
err => next(err)
)
.catch(err => next(err));