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”}