文件資料結果如下:
,
],"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進...