javascript - 如何填充() Mongoose .findOneAndUpdate 对象

标签 javascript mongoose

下面的代码有效,它更新记录或创建记录(如果尚不存在)。但是,我想将此 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/

相关文章:

javascript - connect.facebook.net/en_US/all.js 是做什么的

javascript - 如何避免在网页返回时通过 JS 触发重复的 PubNub 通知

javascript - React - 父类组件功能更改子组件的类

javascript - HTML + Javascript - 结合静态 URL 和 document.referrer

mongodb 3.4.2 InvalidIndexSpecificationOption错误: The field 'unique' is not valid for an _id index specification

node.js - 即使创建了索引,也无法找到 $geoNear 查询的索引

javascript - 如何使用 Cocoon 以嵌套形式定位单个新输入项

javascript - 为什么在 Mongoose 模式中嵌套对象?

javascript - MongoDB 引用不保存 (Mongoose)

node.js - MongoDB 中的日期对象与 Mongoose 和 Nodejs 聚合