我正在尝试更新文档(如果存在)或插入(如果不存在)。我有一个带有 $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(使用前将#替换为@)