菲洛嘉青春动能素135HA FILLMED® NCTF 135HA LED指示灯的常见故障分析 智微智能 Elkhartlake K075终端,零售产业新选择 天空蓝拓客管理系统详细介绍版 muso公链项目 天使计划 是什么?[秘] 独家揭秘最前沿的家装“黑科技”——掌赋 天博体育欧洲杯特辑,东道主法兰西的失意2016 亚马逊的送货侦察员 学习听起来像挡泥板 Google Comics Factory使ML变得容易 笑着说-男性或女性 Amazon Rekognition中更好的人脸检测 关于Spaun的真相-大脑模拟 两个聊天机器人彼此聊天-有趣又怪异 GANPaint:将AI用于艺术 WCF和WF给予社区 从耳朵到脸 所有神经网络的深层缺陷 蠕虫在尾巴上平衡杆子 Kickstarter上的OpenCV AI套件 TensorFlow-Google的开源AI和计算引擎 众包取代新闻工作者 Google的DeepMind学会玩街机游戏 哑机器人V智能机器人 .NET与.NET 5融为一体 Google的深度学习-语音识别 LInQer将.NET LINQ移植到Javascript 机器人TED演讲-新的图灵测试? GAN的发明者加入苹果 您的智能手机会监视您键入的内容 人工智能帮助改善国际象棋 Zalando Flair NLP库已更新 TensorFlow 1.5包含移动版本 AlphaGo输了一场比赛-比分3-1 虚拟机器学习峰会 Microsoft开源AI调试工具 SharePoint走向移动 F#4.0发出文化变革的信号 克里斯蒂拍卖AI艺术品 人工智能如何区分 Facebook在蒙特利尔的新AI实验室 Mozilla想要您的声音 微软使用极深的神经网络赢得ImageNet 建立AI合作伙伴关系 .NET Core 3-Microsoft几乎回到了起点 神经网络-更好的销售商? Google使用AI查找您的住所 虹膜-适用于Android的Siri证明苹果没有优势 TensorFlow 2提供更快的模型训练 深度学习研究人员将为Google工作
您的位置:首页 >程序人生 >

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);}

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