mongoTemplate的方法和update() 欧科云链OKLink推出“链上天眼”功能 区块链+大数据全面助力链上安全 第二届微热点大数据论坛将于9月5日开幕 网龙参与全国教育大数据统计 构建五级服务支撑体系 无代码app制作崛起,app开发已不再是程序员的专利了 torch深入学习之凤飞九天torch.nn.MarginRankingLoss 【机器学习】—各类梯度下降算法 简要介绍 隐马尔可夫模型(HMM)来龙去脉(二) 单智能体、多智能体强化学习基本概念及算法分类?为啥提出多智能体强化学习,现状? 张量网络算法基础(八、张量网络机器学习【上】) MapReduce 简介 Python爬虫入门教程 81-100 小众爬虫框架looter,框架作者竟然在官方手册开车 机器人二维导航教程汇总 mapper 使用示例 Redis的概念及关系型与非关系型数据库对比 MySQL必知必会:使用WHERE、正则表达式、通配符过滤数据 Solr的增量更新和全量更新对比 MYSQL数据库维护 MATLAB与Mysql数据库连接并数据交换(基于ODBC) 数据库:PostgreSQL:基础功能使用介绍 MYSQL 5.7 高级SQL语句(3)——数据库函数和存储过程 mysql导出数据到表格讲解大全(导出数据带表头,导出数据中文乱码问题解决) SpringBoot升级/指定jackson版本 JAVA - EnumMap与EnumSet简单总结 js获取主机mac等信息【亲测有效】-- 附执行结果&代码 [记录六] Vue(全家桶)+node+koa2+mysql+nginx+redis,博客全栈项目之node后台连接mysql和redis,登陆接口的编写 C# 读取XML配置文件 MongoDB数据库设置密码 Redis之重设密码及开启远程访问 本地Navicat连接阿里云MySQL数据库注意要点 PHP Windows系统实现定时任务的两种方式bat版 面试官让我手写promise,我这样写,他很满意 超级码力在线编程大赛初赛 第二场 UML类图的依赖和关联详解(含代码) 【C语言】新手实现简单的石头剪刀布人机对战 Codeforces Round #666 (Div. 2)题解ABC Codeforces Round #666 (Div. 2)E Monster Invaders 华为今年不会推出运行鸿蒙OS的手机;Deno 1.3.2发布|极客头条 异或在笔试题中的超神表现 超级码力在线编程大赛初赛 第2场 T1-T4题解 1397D. Stoned Game(博弈) Codeforces Round #666(Div.2)A~D题题解 高性能微服务架构技术选型 阿里饿了么Java4面:(数据结构+框架源码+JVM+分布式) 2020java面试总结 使用ffmpeg提取mp4内部日期重命名文件(需lua) 【剑指Offer】56.2 数组中只出现一次的数字,其他出现3次 JAVA二三事-使用IO+Properties实现动态读取文本信息 排序算法的C语言实现C代码(未更完) RT-Thread 内核学习--信号量的初步使用
您的位置:首页 >程序人生 >

mongoTemplate的方法和update()

1.引言

mongoTemplate提供了许多的方法,许多的类似的方法,刚开始不知道使用哪一种最好,现在,我把他们整理如下,方便大家选择使用。

2.常用方法

/** * 每个操作带上collectionName, 效率提高许多,并且,防止子类错误操作 * * @param formDataApproval 对象 * @author leimin */public void mongoTemplateSample(FormDataApproval formDataApproval) {Query query = new Query();query.addCriteria(Criteria.where("_id").is(formDataApproval.getId()).and("tenant_id").is(formDataApproval.getTenantId()));Update update = new Update();update.set("process_id", formDataApproval.getProcessId());List<FormDataApproval> list = new ArrayList<>();list.add(formDataApproval);/** * 数据库有,就新增, 没有,就修改 */mongoTemplate.upsert(query, update, FormData.class, "formData");/** * 修改方法 */// 无实际意义,不推荐使用mongoTemplate.update(FormDataApproval.class);mongoTemplate.updateFirst(query, update, FormDataApproval.class, "formDataApproval");mongoTemplate.updateMulti(query, update, FormDataApproval.class, "formDataApproval");mongoTemplate.findAndModify(query, update, FormDataApproval.class, "formDataApproval");/** * 查询方法 */mongoTemplate.find(query, FormDataApproval.class, "formDataApproval");mongoTemplate.findOne(query, FormDataApproval.class, "formDataApproval");mongoTemplate.findAll(FormDataApproval.class, "formDataApproval");mongoTemplate.findById(formDataApproval.getId(), FormDataApproval.class, "formDataApproval");/** * 删除方法 */mongoTemplate.remove(query, FormDataApproval.class, "formDataApproval");mongoTemplate.findAndRemove(query, FormDataApproval.class, "formDataApproval");mongoTemplate.findAllAndRemove(query, FormDataApproval.class, "formDataApproval");/** * 新增方法 */mongoTemplate.save(formDataApproval, "formDataApproval"); // 同upsert(),没有新增,有修改mongoTemplate.insert(formDataApproval, "formDataApproval");mongoTemplate.insertAll(list);}

3.批量修改

/** * 批量修改 formData * * @param formDataList formDatas * @author leimin */@Overridepublic void updateFormDatas(List<FormData> formDataList) {if (CollectionUtils.isEmpty(formDataList)) {return;}BulkOperations operations = mongoTemplate.bulkOps(BulkOperations.BulkMode.UNORDERED, Const.COLLECTION_FORM_DATA);List<Pair<Query, Update>> list = new ArrayList<>();for (FormData formData : formDataList) {Query query = new Query();query.addCriteria(Criteria.where("_id").is(formData.getId()).and("tenant_id").is(formData.getTenantId()));Update update = new Update();update = mongoUtil.getUpdateFormDataAll(formData, update);Pair<Query, Update> pair = Pair.of(query, update);list.add(pair);}operations.updateMulti(list);operations.execute();}

4.其他方法

/** * 类似于mongo原生sql的操作 * 不推荐使用 * * @author leimin */public void mongoTempalteAsOriginal() {// 查询该集合中的所有文档MongoCollection<Document> formDataApprovalDocument = mongoTemplate.getCollection("formDataApproval");// 新增formDataApprovalDocument.insertOne();formDataApprovalDocument.insertMany();// 删除formDataApprovalDocument.deleteOne();formDataApprovalDocument.deleteMany();formDataApprovalDocument.findOneAndDelete();// 修改formDataApprovalDocument.updateOne();formDataApprovalDocument.updateMany();formDataApprovalDocument.findOneAndUpdate();formDataApprovalDocument.replaceOne();formDataApprovalDocument.findOneAndReplace();// 查询formDataApprovalDocument.find();// 获取集合namemongoTemplate.getCollectionName(FormDataApproval.class);}

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。