亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

MongoDB - 使用不同的值更新數組內對象中的值

MongoDB - 使用不同的值更新數組內對象中的值

胡子哥哥 2022-12-09 15:05:33
我在 trainer_copy 集合 (MongoDB) 中有很多文檔,但這里我只顯示了 2 個。我需要更新很多文檔。//1  {    "jobRoles": [{            "sector": {                "id": "11",                "name": "Electronics & Hardware"            }        },        {            "sector": {                "id": "23",                "name": "Management"            }        },        {            "sector": {                "id": "9",                "name": "Construction"            }        },        {            "sector": {                "id": "11",                "name": "Electronics & Hardware"            }        },    ]}//2{    "jobRoles": [{            "sector": {                "id": "20",                "name": "Iron & Steel"            }        },        {            "sector": {                "id": "20",                "name": "Iron & Steel"            }        },        {            "sector": {                "id": "9",                "name": "Construction"            }        },    ]}}我需要更新后的結果如下://1{    "jobRoles" : [         {            "sector" : {                "id" : "11",                "name" : "Electronics and Hardware"            }        },         {            "sector" : {                "id" : "23",                "name" : "Management"            }        },         {            "sector" : {                "id" : "9",                "name" : "Construction"            }        },         {            "sector" : {                "id" : "11",                "name" : "Electronics and Hardware"            }        }, ]}//2{    "jobRoles" : [         {            "sector" : {                "id" : "20",                "name" : "Iron and Steel"            }        },         {            "sector" : {                "id" : "20",                "name" : "Iron and Steel"            }        },         {            "sector" : {                "id" : "9",                "name" : "Construction"            }        },     ]}}
查看完整描述

1 回答

?
狐的傳說

TA貢獻1804條經驗 獲得超3個贊

var tc = [

    {"name":"Electronics & Hardware",            "new_name" :  "Electronics and Hardware"},

    {"name":"Furniture & Fittings",              "new_name" :  "Furniture and Fittings"},

    {"name":"Gems & Jewellery",                  "new_name" :  "Gems and Jewellery"},

    {"name":"Instrumentation",                   "new_name" :  "IASC"},

    {"name":"Iron & Steel",                      "new_name" :  "Iron and Steel"},

    ]

    

    

tc.forEach(x => {


db.trainer_copy.updateMany({"jobRoles.sector.name":x["name"]},

{

    $set: {

        "jobRoles.$[jobRole].sector.name": x["new_name"]

        }

    },

    { arrayFilters: [{ "jobRole.sector.name": x["name"] }] }

    )

})

在上面的答案中,名稱 jobRole 是數組中與過濾器匹配的索引的占位符 { "jobRole.sector.name" : x ["name"] }。


x ["name"] 是舊名稱并將其更新為新名稱即 x["new_name"]。


查看完整回答
反對 回復 2022-12-09
  • 1 回答
  • 0 關注
  • 119 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號