mongoose不更新embedded式文件

我试图在mongodb中更新embedded式文档时遇到了一个问题。 我已经尝试了两种方法,都没有工作,我到处search,为什么这不是更新的原因。 无论如何,我的模式是这样的(我可能会注意到,我试图更新的embedded式文档是一个混合types)。

var UserModel = new mongoose.Schema({ account: String, salt: String, password: String, highlight_words: String, networks: {}, ip: String, ident: String, is_connected: Boolean, account_type: String }); 

我已经尝试用这两个代码片段更新“networking”,但都没有工作。 我正要拉我的头发。

 self.userModel.update({account: key}, {networks: self.client_data[key]['networks']}, function(err) {}); 

和(注意,我已经尝试添加一个callbacksave(),并执行没有错误)

 self.userModel.findOne({account: key}, function(err, doc) { doc.networks = self.client_data[key]['networks']; doc.markModified('networks').save(); }); 

任何帮助,将不胜感激! 谢谢!

编辑:

问题是,对象是这样的{'some.thing': {more: 'stuff'}}显然它不喜欢这个。 这是可以理解的!

尝试doc.markModified('networks'); 。 它看起来像networks是一个无模式的types。 Mongoose无法自动检测对无模式types的更改。

您需要完全定义您的模式才能使用。 例如:

networks {type:“String”}