我试图更新文档(如果存在)或插入(如果不存在)。我有一个带有$ inc,的字段(想将以前的值加1)。
我的代码是

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}

最佳答案

我想这样建议:

Appusers.update({imei: Appuser.imei}, {$set: {imei: req.body.imei, install_flag : 1}, $inc : {user_count:1}}, {upsert: true}, function(err, data){
   if(err) return console.log(err);
   res.send(data);
});

或者如果你想使用一个对象:
var upsertData = {
      $set: {imei: req.body.imei, install_flag : 1},
      $inc: {user_count: 1}
};

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

关于node.js - Mongoose 更新: $inc is not working in upsert,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32197885/

10-12 19:26