Spring Data MongoDB支持批量插入/保存

时间:2012-10-02 06:57:21

标签: spring-data-mongodb

我已经谷歌了一段时间,不确定Spring Data MongoDB是否支持批量保存。

我需要将一组文档保存为mongo作为原子,要么全部保存,要么都不保存。

有人可以共享链接或一些示例代码吗?

1 个答案:

答案 0 :(得分:14)

当您通过MongoDB Java驱动程序进行保存时,您只能将单个文档传递给MongoDB。

进行插入时,可以传递单个元素,也可以传递元素数组。后者将导致“批量插入”(即客户端的单个插入命令将导致在服务器上插入多个文档)。

但是,由于MongoDB不支持事务概念,如果其中一个插入失败,则无法指示应删除或回滚以前插入的文档。

出于原子性的目的,每个文档插入都是一个单独的操作,并且没有任何支持的方法可以使MongoDB插入全部或不插入。

如果这是您的应用程序需要的东西,可能有其他方法来实现它:    - 更改您的架构,以便这些是单个父文档的子文档        (那么技术上只有一个“插入”父文件)    - 将事务语义写入应用程序代码    - 使用本机支持两阶段提交事务的数据库。