mongoTemplate批量更新內嵌文件

2021-08-29 04:42:55 字數 1025 閱讀 8105

文件資料結果如下:

, 

],"createdate" : isodate("2018-10-16t10:15:32.119z"),

"abbreviationname" : "dckj",

"_class" : "co.dc.saas.code.po.codestorepo"

}

mongodb文件格式如上,現在想根據batch更新code陣列中的全部物件的status、productname、basename屬性。經過一番測試後,發現mongotemplate預設只更新陣列的第乙個物件,google過後發現mongodb不支援批量更新。

解決思路:

獲取一下code陣列的長度,然後遍歷更新!

// 獲取碼列表長度

query queryone = new query();

queryone.addcriteria(criteria.where("batch").is(coderepertorydatapo.getbatch()));

codestorepo codestorepo = mongotemplate.findone(queryone, codestorepo.class);

int codelength = codestorepo.getcode().size();

// 更新操作

query updatequery = new query();

// 根據batch查詢

updatequery.addcriteria(criteria.where("batch").is(coderepertorydatapo.getbatch()));

update update = new update();

// 遍歷更新

for (int i = 0; i < codelength; i++)

mongotemplate.updatemulti(updatequery, update, codestorepo.class);

使用MongoTemplate批量更新內嵌陣列元素

原生mongo從3.6以上可以使用 操作符批量修改內嵌陣列元素,以下是基於mongotemplate的封裝實現 monogodb 更新操作符 getter allargsconstructor public enum updateoperator 更新內嵌陣列指定元素 param query 更新的...

mongoTemplate聚合操作

準備資料 customer 集合,資料型別如下 只是部分資料,資料量太多就不一一列出 1 通過mongotemplate.group方法 public groupbyresultsgroup string inputcollectionname,groupby groupby,classentity...

mongotemplate 動態query拼接

在用mongodb的時候進行分詞搜尋 使用ik分詞器對查詢條件進行分詞比如 男士9分休閒褲。使用mongotemplate 對分詞結果進行查詢。query query newquery criteria criteria newcriteria keywords是需要查詢的內容,對keywords進...