麻烦保存在mongoose3

我试图更新Mongoose.js 3.1.2中的一些内容,我无法得到这两个函数的工作。 任何想法为什么? 谢谢…

function(req, res) { Content.findById(req.body.content_id, function(err, content) { // add snippet to content.snippets content.snippets[req.body.snippet_name] = req.body.snippet_value; content.save(function(err) { res.json(err || content.snippets); }); } } function(req, res) { Content.findById(req.body.content_id, function(err, content) { // delete snippets delete content.snippets[req.body.snippet_name]; //content.snippets[req.body.snippet_name] = undefined; <-- doesn't work either content.save(function(err) { res.json(err || "SUCCESS"); }); }); } 

我的模式看起来像这样:

 contentSchema = new Schema( title: String, slug: String, body: String, snippets: Object ); 

您可能需要将path标记为已修改。 由于您没有为它们创buildembedded式模式,因此Mongoose可能无法检查对象属性。

 function(req, res) { Content.findById(req.body.content_id, function(err, content) { // add snippet to content.snippets content.snippets[req.body.snippet_name] = req.body.snippet_value; content.markModified('snippets'); // make sure that Mongoose saves the field content.save(function(err) { res.json(err || content.snippets); }); } }