【发布时间】:2011-07-19 22:05:31
【问题描述】:
我有一个具有以下结构的 mongodb 文档
> db.user.find().limit(1);
{ "_id" : "1", "foo" : { "bars" : [
{
"name" : "bar1"
},
{
"name" : "bar2"
},
], ... }, ... }
我想为每个bar 添加一个新属性。我的脚本在 bars 数组上进行了迭代,但我无法在其中获取新属性,我该怎么做?
var users = db.user.find({"foo.bars":{$exists:true}});
users.forEach(function(user) {
user.foo.bars.forEach(function(bar)
{
printjson(bar);
//how can I specify the current 'bar' in this update?
//db.experience.update({_id: user._id}, {$set: {"what goes here?" : "newbarValue"}});
});
});
【问题讨论】:
-
您确定“要为每个条形添加新属性”确实有效吗?尤其是你想要在 {"user.foo.bars.${bar} 中使用 'user' 做什么?'${bar}' 应该做什么?可能是你试图发明新语法而没有检查如何事情真的有效吗?
-
"user.foo.bars.${bar}" 是指示性的——它不是有效的语法,你会注意到它被注释掉了。我试图表达我的意图。
标签: javascript mongodb mongo-shell