栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java中使用mongoTemplate批量插入

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java中使用mongoTemplate批量插入

业务背景:前端上传zip压缩包文件,后端接受到请求后解压zip得到源文件,数据库记录源文件信息,数据库使用的是mongodb,业务要求同一个文件(这里我们根据文件名称作为判断条件)只有一条记录。

实现方案:

方案一:使用MongoRepository中的saveAll()方法;为减少对数据库的访问,这里都使用的是批量操作,首先根据文件名称批量查询,对结果集中的文件名称和参数文件名集合进行比较,取差集,对结果集中没有的进行批量插入,总结一下就是先查询去重再执行插入。

方案二:在文件名称字段上创建唯一索引,让数据库本身保证数据唯一性;使用唯一所以代码层面使用mongoTemplate.bulkOps,具体如下:
 

    public void saveBatch(List list) {
        mongoTemplate.bulkOps(BulkOperations.BulkMode.UNORDERED,     FileEntity.class).insert(list).execute();
    }

参数说明:

BulkMode.UNORDERED:表示并行处理,遇到错误时能继续执行不影响其他操作;
BulkMode.ORDERED:表示顺序执行,遇到错误时会停止所有执行

这里推荐使用第二种方案,效率高,实测每批500条数据插入耗时150毫秒左右

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/723072.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号