MongoTemplate 一次更新多个文档而不使用 saveAll() 或循环
MongoTemplate update multiple Document with at once without using saveAll() or loops
我在一次保存多个文档时遇到问题,我的需要是在更新多个文档时它只更新目标字段:
我正在尝试做什么:
Update1 ("field Name" , " AB" ) ;
Update2 ("field Name", "ABC");
Query query = mongoTemplate.Aggr(...)
mongoTemplate.multipleUpdate(..,Update1, Update 2);
有什么办法可以做到这一点吗?
我通过使用 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();
我在一次保存多个文档时遇到问题,我的需要是在更新多个文档时它只更新目标字段: 我正在尝试做什么:
Update1 ("field Name" , " AB" ) ;
Update2 ("field Name", "ABC");
Query query = mongoTemplate.Aggr(...)
mongoTemplate.multipleUpdate(..,Update1, Update 2);
有什么办法可以做到这一点吗?
我通过使用 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();