mongodb+spring boot如何修改深层嵌套对象
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,mongodb+spring boot如何修改深层嵌套对象,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在最近的工作中使
千家信息网最后更新 2026年11月01日mongodb+spring boot如何修改深层嵌套对象
mongodb+spring boot如何修改深层嵌套对象,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
在最近的工作中使用到对mongodb深层嵌套对象的修改,研究了很久,故做此笔记。
1.开发环境:mongodb+spring boot项目,使用mongoTemplate进行修改
2.数据为三层嵌套TopicModel-->TopicTableModel-->TopicColumnModel
3.修改代码展示
(1)修改第二级TopicTableModel对象
@Override public boolean updateTableModel(TopicTableModel tableModel) { Query query = new Query(); query.addCriteria(Criteria.where("tableList.tableId").is(tableModel.getTableId())); Update update = new Update().set("tableList.$.tableName", tableModel.getTableName()) .set("tableList.$.tableComment", tableModel.getTableComment()) .set("tableList.$.status", Integer.valueOf(tableModel.getStatus())); // .set("tableList.$.topicCode", tableModel.getTopicCode()); UpdateResult tableUr = this.mongoTemplate.upsert(query, update, TopicModel.class); if ((tableUr.getMatchedCount() > 0L) || (tableUr.getUpsertedId() != null)) { return true; } return false; }(3)修改第三级(TopicColumnModel),需要先遍历定位到修改的第三级对像的索引
@Override public boolean updateColumnModel(TopicColumnModel topicColumnModel, String tmId, String tbId) { Query query = new Query(); query.addCriteria(Criteria.where("tableList.tableId").is(tbId)); Update update = new Update(); List topicModels = mongoTemplate.find(query, TopicModel.class); for (int i = 0; i < topicModels.size(); i++) { if (topicModels.get(i).getId().equals(tmId)) { List topicTableModels = topicModels.get(i).getTableList(); for (int j = 0; j < topicTableModels.size(); j++) { if (topicTableModels.get(j).getTableId().equals(tbId)) { List topicColumnModels = topicTableModels.get(j).getColList(); for (int k = 0; k < topicColumnModels.size(); k++) { if (topicColumnModels.get(k).getColId().equals(topicColumnModel.getColId())) { update.set("tableList.$.colList." + k + ".colName",topicColumnModel.getColName()) .set("tableList.$.colList."+ k +".desc1", topicColumnModel.getDesc1()) .set("tableList.$.colList." + k +".desc2", topicColumnModel.getDesc2()) .set("tableList.$.colList." + k +".internalMark", topicColumnModel.getInternalMark()) .set("tableList.$.colList." + k +".qualifierMark", topicColumnModel.getQualifierMark()) .set("tableList.$.colList." + k +".chineseName", topicColumnModel.getChineseName()) .set("tableList.$.colList." + k +".dataSource", topicColumnModel.getDataSource()) .set("tableList.$.colList." + k +".getRules", topicColumnModel.getGetRules()) .set("tableList.$.colList." + k +".dataType", topicColumnModel.getDataType()) .set("tableList.$.colList." + k +".dataLength", topicColumnModel.getDataLength()) .set("tableList.$.colList." + k +".pkey", topicColumnModel.isPkey()) .set("tableList.$.colList." + k +".index", topicColumnModel.isIndex()) .set("tableList.$.colList." + k +".nullAble", topicColumnModel.isNullAble()) .set("tableList.$.colList." + k +".unique", topicColumnModel.isUnique()) .set("tableList.$.colList." + k +".colComment", topicColumnModel.getColComment()) .set("tableList.$.colList." + k +".defaultValue", topicColumnModel.getDefaultValue()) .set("tableList.$.colList." + k +".check", topicColumnModel.getCheck()) .set("tableList.$.colList." + k +".attributeType", topicColumnModel.getAttributeType()); } } } } } } UpdateResult tableUr = this.mongoTemplate.updateFirst(query, update, TopicModel.class); if ((tableUr.getMatchedCount() > 0L) || (tableUr.getUpsertedId() != null)) { return true; } return false; } 看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
对象
深层
帮助
清楚
代码
内容
对此
数据
文章
新手
更多
环境
知识
笔记
索引
行业
资讯
资讯频道
难题
需求
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
瑰夏咖啡
广州为想互联网科技有限公司
广州紫鲸互联网科技有限公司
互联网中国科技
壕鑫互联网络科技
上海致骋互联网科技
互联网 科技馆
济南和联互联网科技有限公司
北京大学互联网科技怎么样
银川新华互联网科技职业技术培训学校图片
互联网软件和科技
未来五年的互联网科技
互联网科技创新的路径
黑科技 体验场景 互联网大会
梅州GM互联网络科技有限公司
杭州披云加互联网科技有限公司
广东鹅鹅鹅互联网科技有限公司
科技和互联网行业的特点
互联网金融金融科技
广东猫王互联网科技有限公司电话
科技互联网公司装修
互联网金融 科技金融
互联网科技革命
互联网金融科技委员会
宁波青枫互联网科技有限公司
来此购互联网科技有限公司
花神(南京)互联网科技有限公司
广州千川互联网科技有限公司
宇信科技在杭州互联网排第几
盐城市攀科互联网科技有限公司