我正在创建两个集合,一个是暂时创建的,然后“填充”到主集合中的另一个文档中。
我正在努力理解如何以类似于下面的方式更新数组的特定索引。
function stuffDepartmentsIntoLocations() {
var ops = [];
db.HR.find().forEach(function(country)
{
for(var i=0;i < country.location.length; i++) {
db.tempDEPTS.find({"LOCATION_ID":location.LOCATION_ID}).forEach(function(dept)
{
ops.push(
{
"updateOne":
{
"filter": {"_id": country._id },
"update\": {"$push": {"location[i].department":dept}}
}
}
);
if ( ops.length == 1000 ) {
db.HR.bulkWrite(ops,{ "ordered": false });
ops = [];
}
}
);
}
}
);
if ( ops.length > 0 ) {
db.HR.bulkWrite(ops,{ "ordered": false });
}
return true;
}"
这似乎不起作用:
"update": {"$push": {"location[i].department":dept}}
错误如下:
{“serverUsed”:“127.0.0.1:27017”,“retval”:true,“ok”:1.0} { “serverUsed”:“127.0.0.1:27017”,“ok”:0.0,“errmsg”: “ReferenceError:未定义位置 :\ nstuffDepartmentsIntoLocations /&LT; @:1:195个\ nDBQuery.prototype.forEach@src/mongo/shell/query.js:501:1个\ nstuffDepartmentsIntoLocations @:1:74 \ n”个 ,“code”:139,“codeName”:“JSInterpreterFailure”} [统计] 断开
人力资源收集文件如下:
我想添加的临时集合中的部门文档如下: