第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

更新子文檔的所有元素,其中子文檔是列表的一部分

更新子文檔的所有元素,其中子文檔是列表的一部分

萬千封印 2023-05-17 14:35:48
我與 MongoDB 中具有不同城市地址的營銷人員有文檔。{  "_id": "name",  "cities": [    {      "id": "1234abc",      "city_name": "London",      "country": "England",      "addresses": [        {          "Home": "Unit 14 Edgar Buildings George Street"        },        {          "Office": "Studio 103 The Business Centre 61"        }      ]    },    {      "id": "1234xyz",      "city_name": "Paris",      "country": "France",      "addresses": [        {          "Home": "102  rue La Boétie"        },        {          "Office": " IMPASSE VIVALDI VAUCE"        }      ]    }  ]}我的實體類是 Person、city 和 address。如果那個人轉(zhuǎn)移到另一個國家,如 Canda 并想要更新 France - Paris 子文檔。{"_id": "name",{      "id": "1234xyz",      "city_name": "Toronto",      "country": "Canada",      "addresses": [        {          "Home": "Toronto City Hall 100 Queen St W"        },        {          "Office": "4110 Yonge StNorth York, ON M2P 2H3"        }      ]    }}我不知道哪個 Spring Data Mongo api 可以在這里工作。我嘗試使用以下代碼,但沒有任何更新。Update changed = new Update().pull("cities", new Query(Criteria.where("_id").is(username)));mongoTemplate.updateFirst(new Query(Criteria.where("cities._id").is(cityId)), changed, Person.class);如果我使用Update update = new Update().set("cities",city);所有子文檔,則替換為一個城市
查看完整描述

3 回答

?
慕斯709654

TA貢獻1840條經(jīng)驗 獲得超5個贊

拜托,你能在這里檢查一次嗎?Criteria.where("cities._id").is(cityId). 在這里我覺得我們必須使用"cities.id".



查看完整回答
反對 回復 2023-05-17
?
qq_花開花謝_0

TA貢獻1835條經(jīng)驗 獲得超7個贊

現(xiàn)在我刪除它并在列表中推送更新的文檔,而不是更新子文檔實體。它對我有用。通過執(zhí)行 toHexString 訪問對象 ID 之后。

刪除操作 update.pull("cities", Query.query(Criteria.where("id").is(id.toHexString()))); mongoOperations.upsert(查詢,更新,Person.class);

添加操作:update.push("cities", subdocumentEntity); mongoOperations.updateFirst(查詢,更新,Person.class));


查看完整回答
反對 回復 2023-05-17
?
Smart貓小萌

TA貢獻1911條經(jīng)驗 獲得超7個贊

要刪除特定的城市文檔:


Update changed = new Update().pull("cities", new Query(Criteria.where("id").is(cityId)));

mongoTemplate.updateFirst(new Query(Criteria.where("_id").is(username)), changed, Person.class);

添加新城市信息:


Update update = new Update().addToSet("cities",city);


查看完整回答
反對 回復 2023-05-17
  • 3 回答
  • 0 關注
  • 167 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號