Javascript 将字段插入子文档数组中。意外行为
我试图在每个子文档数组中的每个子文档中插入一个新字段。我有一个半工作脚本,预期结果是插入每个子文档的Javascript 将字段插入子文档数组中。意外行为,javascript,mongodb,mongodb-query,Javascript,Mongodb,Mongodb Query,我试图在每个子文档数组中的每个子文档中插入一个新字段。我有一个半工作脚本,预期结果是插入每个子文档的序号,但它似乎插入到集合中每个注释数组的第一个子文档中 db.posts.find({ "comments.ordinal_number":{"$exists":true}}).forEach(function(data){ for(var i = 0; i < data.comments.length; i++) { db.posts.update( {
序号
,但它似乎插入到集合中每个注释
数组的第一个子文档中
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
);
}
});
您还需要循环光标和数组条目,然后使用操作符使用操作更新数组中的每个子文档,以获得最大效率
var bulk=db.posts.initializeOrderedBulkOp();
var计数=0;
db.posts.find().forEach(函数(doc){
var nComments=doc.comments.length;
对于(变量i=0;i0)bulk.execute();
请注意,批量API在2.6中是新的,因此如果您使用的是旧版本,则需要使用该方法
db.posts.find().forEach(函数(doc){
var nComments=doc.comments.length;
对于(变量i=0;i
您还需要循环光标和数组条目,然后使用操作符使用操作更新数组中的每个子文档,以获得最大效率
var bulk=db.posts.initializeOrderedBulkOp();
var计数=0;
db.posts.find().forEach(函数(doc){
var nComments=doc.comments.length;
对于(变量i=0;i0)bulk.execute();
请注意,批量API在2.6中是新的,因此如果您使用的是旧版本,则需要使用该方法
db.posts.find().forEach(函数(doc){
var nComments=doc.comments.length;
对于(变量i=0;i
@user3100115我想添加一个实际的新字段,而不是更新字段的值。@user3100115我想添加一个实际的新字段,而不是更新字段的值。
"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"
}
]