我正在尝试更新文档(如果存在)或插入(如果不存在)。我有一个带有 $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
将 user_count 设置为 1。这是 $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);
});
关于node.js - Mongoose 更新 : $inc is not working in upsert,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32197885/
相关文章:
mongodb - Meteor.Collection 和 Meteor.Collection.Cu
node.js - 我可以使用 MongoDb 驱动程序从 node.js 调用 rs.initia
mongodb - Mongotemplate - 根据大于(gt)或小于(lt)运算符查询Obje
c# - 从 2.0 MongoDb c# 驱动程序获取结果
java - Mongodb选择所有字段按一个字段分组并按另一个字段排序
c# - 如何使用 c# 驱动程序删除 mongodb 文档中的嵌套数组元素
ruby-on-rails - Mongoid 批量更新/Upsert 替代方案?