msa*_*eep 6 spring-data-mongodb
有人可以给我一个完整的Spring Data Mongodb DB批量操作示例。
我正在尝试使用 spring 数据 mongodb 切换到批量更新。找不到一个很好的例子。
谢谢你。
Spring 数据 mongodb 中的 BulkOperations 使用 mongodb 中的 bulkWrite()。
来自 mongoDB 文档 ->
因此,当您想在一个查询中更新许多具有不同更新的实体时,您可以通过这个 bulkOps 来实现。
让我们看一个例子,尽管它可能不是一个完美的例子。假设您有一个员工集合,其中包含在公司工作的员工。现在经过评估后,所有员工的薪水都会发生变化,每个员工的薪水变化都会有所不同,假设没有涉及百分比明智的加息,如果您想一次性更新变化,您可以使用bulkOps。
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.BulkOperations;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.data.util.Pair;
public class Example {
@Autowired
MongoTemplate mongoTemplate;
public int bulkUpdateEmployee(List<Pair<Query, Update>> updates){
return mongoTemplate.bulkOps(BulkOperations.BulkMode.UNORDERED,"employees",Employee.class).updateMulti(updates).execute().getModifiedCount();
}
}
Run Code Online (Sandbox Code Playgroud)
--------------这里我们可以准备查询和更新对 ------- -------为每个员工-> ---“查询” - 员工的 id 是 blabla ---“更新”- 将薪水设置为 xxx
小智 5
分享对我有用的批量操作代码
BulkOperations bulkOps = mongoTemplate.bulkOps(BulkMode.UNORDERED, Person.class);
for(Person person : personList) {
Query query = new Query().addCriteria(new Criteria("id").is(person.getId()));
Update update = new Update().set("address", "new Address as per requirement");
bulkOps.updateOne(query, update);
}
BulkWriteResult results = bulkOps.execute();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4891 次 |
| 最近记录: |