如何用mongodb和弹簧引导修改深层嵌套对象?这篇文章运用了实例代码展示,代码非常详细,可供感兴趣的小伙伴们参考借鉴,希望对大家有所帮助。
1。开发环境:mongodb +弹簧启动项目,使用mongoTemplate进行修改
2。数据为三层嵌套TopicModel——祝辞TopicTableModel——祝辞TopicColumnModel
3。修改代码展示
(1)修改第二级TopicTableModel对象
<代码> @Override ,,公共布尔updateTableModel (TopicTableModel tableModel) { ,,,=新的查询,查询查询(); ,,,,query.addCriteria (Criteria.where (“tableList.tableId") . (tableModel.getTableId ())); ,,,这里,更新更新=新更新()(“tableList。.tableName"美元;,tableModel.getTableName ()) ,,,,,,,,这里(“tableList。.tableComment"美元;,tableModel.getTableComment ()) ,,,,,,,,这里(“tableList。.status"美元;,Integer.valueOf (tableModel.getStatus ())); ,,,,//这里(“tableList。.topicCode"美元;,tableModel.getTopicCode ()); ,,,,UpdateResult tableUr=this.mongoTemplate。插入(查询、更新TopicModel.class); ,,,,如果(tableUr.getMatchedCount()比;0 l) | | (tableUr.getUpsertedId () !=null)) { ,,,,,,返回true; ,,,,} ,,,,返回错误; ,代码,}>
(3)修改第三级(TopicColumnModel),需要先遍历定位到修改的第三级对像的索引
<代码> @Override ,,公共布尔updateColumnModel (TopicColumnModel TopicColumnModel,字符串tmId,字符串tbId) { ,,,=新的查询,查询查询(); ,,,,query.addCriteria (Criteria.where (“tableList.tableId") . (tbId)); ,,,,更新更新=new Update (); ,,,,ListtopicModels=mongoTemplate。找到(查询,TopicModel.class); ,,,,(int i=0;我& lt;topicModels.size ();我+ +){ ,,,,,(我),如果(topicModels.get .getId () .equals (tmId)) { ,,,,,,,,List topicTableModels=topicModels.get (i) .getTableList (); ,,,,,,,,(int j=0;j & lt;topicTableModels.size ();j + +) { ,,,,,,,,,,如果(topicTableModels.get (j) .getTableId () .equals (tbId)) { ,,,,,,,,,,,,List topicColumnModels=topicTableModels.get (j) .getColList (); ,,,,,,,,,,,,(int k=0;k & lt;topicColumnModels.size ();k + +) { ,,,,,,,,,,,,,,如果(topicColumnModels.get (k) .getColId () .equals (topicColumnModel.getColId ())) { ,,,,,,,,,,,,,,,美元,update.set (“tableList。.colList !”+ k +“.colName", topicColumnModel.getColName ()) ,,,,,,,,,,,,,,,,,,,,这里(“tableList。美元.colList !”+ k +“.desc1", topicColumnModel.getDesc1 ()) ,,,,,,,,,,,,,,,,,,,,这里(“tableList。美元.colList !”+ k +“.desc2", topicColumnModel.getDesc2 ()) ,,,,,,,,,,,,,,,,,,,,这里(“tableList。美元.colList !”+ k +“.internalMark", topicColumnModel.getInternalMark ()) ,,,,,,,,,,,,,,,,,,,,这里(“tableList。美元.colList !”+ k +“.qualifierMark", topicColumnModel.getQualifierMark ()) ,,,,,,,,,,,,,,,,,,,,这里(“tableList。美元.colList !”+ k +“.chineseName", topicColumnModel.getChineseName ()) ,,,,,,,,,,,,,,,,,,,,这里(“tableList。美元.colList !”+ k +“.dataSource", topicColumnModel.getDataSource ()) ,,,,,,,,,,,,,,,,,,,,这里(“tableList。美元.colList !”+ k +“.getRules", topicColumnModel.getGetRules ()) ,,,,,,,,,,,,,,,,,,,,这里(“tableList。美元.colList !”+ k +“.dataType", topicColumnModel.getDataType ()) ,null null null null null null null null null null null null null null null null null null null null null null 如何用mongodb和弹簧引导修改深层嵌套对象