如何基于另一个数组字段的数组更新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"
}
}
])