Mongoose保存返回正确的保存对象,但不保存到数据库

我正在做一个findOne,然后保存。 这是覆盖以前的保存对象。

问题是保存res.json()在我的callback后返回正确更新的数据(又名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的这种方法在我之前已经为我工作了。 所以我不会上面的代码工作? 并发? 对象大小?

任何帮助将是伟大的。 谢谢

挖掘后,我发现这与下面的代码示例:

 Assignment.findOne(function (err, doc) { doc.dueDate.setMonth(3); doc.save(callback); // THIS DOES NOT SAVE YOUR CHANGE doc.markModified('dueDate'); doc.save(callback); // works }) 

所以我当然testing,并在我的DB更新对象

 myObject.markModified('body'); 

希望这有助于他人在未来