我试图更新文档(如果存在)或插入(如果不存在)。我有一个带有$ 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/