mongoose 更新:$inc 无法在 upsert 中工作

2023-12-31

我正在尝试更新文档(如果存在)或插入(如果不存在)。我有一个带有 $inc 的字段(想要将先前的值增加一)。 我的代码是

var Appuser = new Appusers({
   imei: req.body.imei,
   $inc : {user_count:1},
   install_flag : 1
});
var upsertData = Appuser.toObject();

delete upsertData._id;

Appusers.update({imei: Appuser.imei}, upsertData, {upsert: true}, function(err, data){ 
   if(err) return console.log(err);
   res.send(data);
});

只有 $inc 不起作用。在架构中我有user_count : { type:Number, default:0}


当值尚不存在时,您无法增加该值。您可以使用$setOnInsert to set 用户数插入文档时为 1。这是以下文档$setOnInsert http://docs.mongodb.org/v3.0/reference/operator/update/setOnInsert/.

您的查询将如下所示:

var Appuser = new Appusers({
    imei: req.body.imei,
    install_flag : 1
});

Appusers
    .update({
        imei: Appuser.imei
    }, {
        $set: upsertData,
        $setOnInsert: {
            user_count: 1
        },
        $inc: {
            user_count:1
        }
    }, {
        upsert: true
    }, function(err, data) {
        if(err) return console.log(err);
        res.send(data);
    });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mongoose 更新:$inc 无法在 upsert 中工作 的相关文章

随机推荐