【发布时间】:2012-10-11 08:02:08
【问题描述】:
我在尝试更新 mongodb 中的嵌入式文档时遇到了很大的问题。我尝试了两种方法,但都不起作用,并且我到处搜索了为什么它没有更新的原因。无论如何,我的架构看起来像这样(我可能会注意到我尝试更新的嵌入文档是混合类型)。
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
});
我已尝试使用这两个 sn-ps 代码更新“网络”,但均无效。我要拔头发了。
self.userModel.update({account: key}, {networks: self.client_data[key]['networks']}, function(err) {});
并且(请注意,我已经尝试向 save() 添加回调,并且它执行时没有错误)
self.userModel.findOne({account: key}, function(err, doc) {
doc.networks = self.client_data[key]['networks'];
doc.markModified('networks').save();
});
任何帮助将不胜感激!谢谢!
编辑:
问题是对象就像{'some.thing': {more: 'stuff'}} 一样,显然它不喜欢 .这是可以理解的!
【问题讨论】:
-
self.client_data[key]['networks']的值是多少?尝试用一些文字替换它以帮助您进行调试。 -
这是一个相当大的对象,但我知道它已经被填充了。我尝试用
doc.networks = {test: 123};替换它,但仍然没有保存文档.. -
我猜也是在第一个版本中?任何机会它只是不匹配任何东西?
delete({account: key})有效吗?
标签: node.js mongodb document mongoose