如何基于另一个数组字段的数组更新MongoDB数组文件

如何基于另一个数组字段的数组更新MongoDB数组文件,mongodb,Mongodb,我收藏了此文档 { "_id": ObjectId("609111c7ba749712215cff37"), "CompanyExperience" : { "Company1" : { "CompanyName" : "NWS Pvt. Ltd", "JobTitle" : "", &

我收藏了此文档

{
  "_id": ObjectId("609111c7ba749712215cff37"),
  "CompanyExperience" : {
    "Company1" : {
      "CompanyName" : "NWS Pvt. Ltd",
      "JobTitle" : "",
      "From" : "01/03/2017",
      "Till" : "30/11/2020",
      "ExperienceMonths" : NumberDecimal("9"),
      "ExperienceYears" : NumberDecimal("3")
    },
    "Company2" : {
      "CompanyName" : "KHS InfoTech Studio Pvt",
      "JobTitle" : "Sales-Coordinators",
      "From" : "01/08/2016",
      "Till" : "28/02/2017",
      "ExperienceMonths" : NumberDecimal("6"),
      "ExperienceYears" : NumberDecimal("0")
    }
  }
}
我只想更新CompanyExperience.Company1.JobTitle=CompanyExperience.Company2.JobTitle

我已尝试使用此代码

db.mongodb_tbl_resumecard_all.updateOne(
    {"_id" : ObjectId("609111c7ba749712215cff37")},
    {$set:
        {
            "CompanyExperience.Company1.JobTitle": "$CompanyExperience.Company2.JobTitle"
        }
    }
)
但是我有

{
  "_id": ObjectId("609111c7ba749712215cff37"),
  "CompanyExperience" : {
    "Company1" : {
      "CompanyName" : "NWS Pvt. Ltd",
      "JobTitle" : "$CompanyExperience.Company2.JobTitle",
      "From" : "01/03/2017",
      "Till" : "30/11/2020",
      "ExperienceMonths" : NumberDecimal("9"),
      "ExperienceYears" : NumberDecimal("3")
    },
    "Company2" : {
      "CompanyName" : "KHS InfoTech Studio Pvt",
      "JobTitle" : "Sales-Coordinators",
      "From" : "01/08/2016",
      "Till" : "28/02/2017",
      "ExperienceMonths" : NumberDecimal("6"),
      "ExperienceYears" : NumberDecimal("0")
    }
  }
}
我想更新它的值,但它正在像字符串一样更新。
请帮助我。

您需要将$set操作放在[]括号中,以形成聚合管道:

db.mongodb_tbl_resumecard_all.update({
  "_id": ObjectId("609111c7ba749712215cff37")
},
[
  {
    "$set": {
      "CompanyExperience.Company1.JobTitle": "$CompanyExperience.Company2.JobTitle"
    }
  }
])