【发布时间】:2015-11-28 20:23:39
【问题描述】:
我正在尝试在每个子文档数组的每个子文档中插入一个新字段。我有一个半工作脚本,预期的结果是 ordinal_number 要插入到每个子文档中,但它似乎是插入到集合中每个 comments 数组中的第一个子文档中。
db.posts.find({
"comments.ordinal_number":{"$exists":true}}).forEach(function(data){
for(var i = 0; i < data.comments.length; i++) {
db.posts.update(
{
"_id": data._id,
"comments.body": data.comments[i].body
},
{
"$set": {
"comments.$.ordinal_number":
1
}
},true,true
);
}
});
输出结果:
"link" : "cxzdzjkztkqraoqlgcru",
"author" : "machine",
"title" : "arbitrary title",
"comments" : [
{
"body" : "...",
"email" : "ZoROirXN@thUNmWmY.com",
"author" : "Foo bar",
"ordinal_number" : 1
},
{
"body" : "...",
"email" : "eAYtQPfz@kVZCJnev.com",
"author" : "Foo baz"
}
]
【问题讨论】:
-
@user3100115 我想添加一个实际的新字段,而不是更新字段的值。
标签: javascript mongodb mongodb-query