下面的代码有效,它更新记录或创建记录(如果尚不存在)。但是,我想将此 findOneAndUpdate()
语句与 populate()
方法结合起来,以填充我的对象的“用户”。将 populate("user")
语句添加到此逻辑的正确方法是什么?
我尝试在 findOneAndUpdate
完成后添加 populate()
方法,但返回一个错误,指出此方法不存在。我正在运行最新版本的 Mongoose 。
LoyaltyCard.findOneAndUpdate({ business: businessid}, { $set: newCard, $inc: { stamps: +1 } }, { upsert: true}, function(err, card){
if(err)
{
}
else
{
}
res.json(result);
});
最佳答案
使用 exec()
代替回调参数:
LoyaltyCard.findOneAndUpdate(
{business: businessid},
{$set: newCard, $inc: {stamps: +1}},
{upsert: true}
)
.populate('user')
.exec(function(err, card) {
if (err) {
// ...
} else {
res.json(result);
}
});
关于javascript - 如何填充() Mongoose .findOneAndUpdate 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24024038/