Node.js Mongo值未更新
我试图简单地增加mongoose中一个对象的值,它似乎不想超过2??有什么我遗漏的吗?我对Mongo还是个新手Node.js Mongo值未更新,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我试图简单地增加mongoose中一个对象的值,它似乎不想超过2??有什么我遗漏的吗?我对Mongo还是个新手 campsite.findOne({slug : req.body.campsite.slug }, function(err, site){ if(!site.tracking){ console.log("no previous tracking at all"); site.tracking = {}; } if(sit
campsite.findOne({slug : req.body.campsite.slug }, function(err, site){
if(!site.tracking){
console.log("no previous tracking at all");
site.tracking = {};
}
if(site.tracking[req.body.tracking_type] == undefined){
console.log("no previous tracking of this type");
site.tracking[req.body.tracking_type] = 1;
}else{
console.log("well count it then!");
site.tracking[req.body.tracking_type] += + 1;
}
site.save(function (err, fluffy) {
console.log(err);
});
res.send(200);
});
它只是不保存更新的结果?我的模式如下
var campsitesSchema = new Schema({
name: String,
address_line_1: String,
address_line_2: String,
county: String,
postcode: String,
loc: Array,
website: String,
email: String,
telephone_1: String,
telephone_2: String,
description: String,
slug:String,
status:String,
confirm_url_key: String,
password: String,
short_description: String,
long_description: String,
features: Array,
tracking: {}
});
您最好使用带有$inc修改器的更新
campsite.update({slug : req.body.campsite.slug }, {$inc: { 'tracking[' + req.body.tracking_type + ']' : 1} });
您不能使用“tracking['+req.body.tracking_type+']@user324014尝试“tracking”。+req.body.tracking_type@user3240114req.body.tracking_type的值是多少?没关系,我已经对它进行了排序,似乎唯一能绕过它的方法是替换整个跟踪对象,看我的回答本质上我必须用$set修饰符替换整个对象,如果没有回调,它也不起作用