使用 ReactiveMongoTemplate 批量更新
Posted
技术标签:
【中文标题】使用 ReactiveMongoTemplate 批量更新【英文标题】:Bulk Update with ReactiveMongoTemplate 【发布时间】:2021-10-24 12:59:27 【问题描述】:在响应式 Spring Boot 应用程序中,我有一个要更新的项目列表。我想向我的数据库发送一个 SINGLE 命令以将更改应用于不同的项目。如果我可以说,相当于 db.collection.updateMany。可能吗?怎么样?
【问题讨论】:
是的,有可能。 【参考方案1】:是的,这是可能的, ReactiveMongoTemplate 有
updateMulti(Query query, UpdateDefinition update, Class<?> entityClass)
使用提供的更新文档更新在集合中找到的与查询文档条件匹配的实体类的所有对象。
【讨论】:
如果我使用查询在项目列表中找到项目 1,我猜我可以用 UpdateDefinition 更新它。第2项呢?第 3 项……?我是否需要编写与要更新的项目一样多的 updateMulti?如果是这样,我可以只使用存储库 saveAll。我需要的是发送一个 SINGLE mongodb 命令来更新所有项目。 是的,您可以使用 saveAll() 或 insert(Collection extends T> batchToSave, Class> entityClass) 将对象集合插入到集合中,以单个批量写入数据库。以上是关于使用 ReactiveMongoTemplate 批量更新的主要内容,如果未能解决你的问题,请参考以下文章
@@ DataJpaTest无法排除反应性mongo的存储库
通过动态查询在ReactiveMongoRepository上实现分页和排序。