1
我正在做一个findOne,然后保存。这是覆盖以前的保存对象。Mongoose保存返回正确的保存对象,但它不保存到DB
问题是,在我的回调中保存res.json()后,返回正确更新的数据(又名myObject,通过我的for循环修改)。但是,“保存”似乎并没有实际发生,因为数据库仍旧在旧状态下显示myObject。
var pathList = [{id:'x',url:'#'}];
MyObjects.findOne({'_id': _id}, function(err, myObject) {
//
for (var i in myObject.body.module) {
for (var j = 0; j < pathList.length; j++) {
var id = pathList[j].id;
myObject.body.module[i].channel[id].buffer = {
url:pathList[j].url
};
}
}
//
myObject.save(function(err, data) {
if (err){
res.json({'response':'Error in saving track: '+err});
throw err;
}
res.json({
'response': 'done',
'data': data
});
});
});
findOne> save的这种方法在我之前已经有效。所以我不会上面的代码工作?并发?对象大小?
任何帮助将是伟大的。由于
为什么在找到之前不定义“保存”?也许它会在您定义保存回调之前发现?如果save函数不是回调函数,并且findone函数是回调函数,那么保存后可能会回调? –