使用spring boot将大量数据从一个集合复制到Mongodb中的另一个集合

Posted

技术标签:

【中文标题】使用spring boot将大量数据从一个集合复制到Mongodb中的另一个集合【英文标题】:Copy of huge data from one collection to another collection in Mongodb using spring boot 【发布时间】:2021-09-27 15:34:48 【问题描述】:

我们正在编写一个调度程序,使用 Spring Boot 将数据从一个集合备份到 Mongodb 中的另一个集合。 数据可以是 500K 到 100 万个文档。 复制完成后,我们应该从旧集合中删除数据。目前我们正在使用spring数据分页来获取数据块并保存到新集合然后删除。

这种方法是否可行,或者任何乐观的方法都值得推荐。

【问题讨论】:

考虑重命名集合,会比复制和删除快得多。而不是删除文档,而是考虑drop整个集合,这也更快。 【参考方案1】:

当你在这个任务中使用带有分页的 spring 数据时,这意味着你使用容器来处理文档。

您可以从调度程序触发一组系统命令(mongo 导出和导入后从源中删除数据)。

例如..

SystemCommandTasklet tasklet = new SystemCommandTasklet();

tasklet.setCommand(""); tasklet.setWorkingDirectory("/home/merlin");

【讨论】:

以上是关于使用spring boot将大量数据从一个集合复制到Mongodb中的另一个集合的主要内容,如果未能解决你的问题,请参考以下文章

Java spring boot + spring batch:处理大量信息

使用spring boot将zip文件从应用程序资源文件夹复制到目标

Spring boot集成Redis—RedisTemplate的使用来存储Map集合

我应该如何将数据库表复制到可以在 Spring Boot Rest api 中使用的等效 Java bean 类中?

Spring Boot - 从 Application.properties 填充列表/集合?

如何在 Spring Boot 中使用 IPwhitelisting 和 OAuth2? [复制]