MongoTemplate 一次更新多个文档而不使用 saveAll() 或循环
Posted
技术标签:
【中文标题】MongoTemplate 一次更新多个文档而不使用 saveAll() 或循环【英文标题】:MongoTemplate update multiple Document with at once without using saveAll() or loops 【发布时间】:2022-01-07 17:13:14 【问题描述】:我无法一次保存多个文档,我的需要是在更新多个文档时只更新目标字段: 我正在尝试做的事情:
Update1 ("field Name" , " AB" ) ;
Update2 ("field Name", "ABC");
Query query = mongoTemplate.Aggr(...)
mongoTemplate.multipleUpdate(..,Update1, Update 2);
有没有办法做到这一点?
【问题讨论】:
可以在mongodb中使用insertMany功能 【参考方案1】:我发现自己通过使用 BulkOperations 可以将多个 Update 堆叠成块,然后同时执行它! 我的代码:
BulkOperations bulkOperations = mongoTemplate.bulkOps(BulkOperations.BulkMode.UNORDERED, Foo.class);
List<Foo> fooList = FooRepository.findAllByIdIn(Arrays.asList(id));
for (Foo foo : fooList)
Query query = new Query().addCriteria(new Criteria("...").is(...));
Update update = new Update().set(..., ...);
bulkOperations.updateOne(query, update);
bulkOperations.execute();
【讨论】:
以上是关于MongoTemplate 一次更新多个文档而不使用 saveAll() 或循环的主要内容,如果未能解决你的问题,请参考以下文章
通过 Instagram API 访问公共 Instagram 内容而不使 accesstoken 过期