Spring Data MongoDB和批量更新 [英] Spring Data MongoDB and Bulk Update
问题描述
我正在使用Spring Data MongoDB,并希望像这里描述的那样执行批量更新: http://docs.mongodb.org/manual/reference/method/Bulk.find.update/#Bulk.find.update
I am using Spring Data MongoDB and would like to perform a Bulk Update just like the one described here: http://docs.mongodb.org/manual/reference/method/Bulk.find.update/#Bulk.find.update
使用常规驱动程序时,它看起来像这样:
When using regular driver it looks like this:
以下示例初始化items集合的Bulk()操作构建器,并将各种多重更新操作添加到操作列表中。
The following example initializes a Bulk() operations builder for the items collection, and adds various multi update operations to the list of operations.
var bulk = db.items.initializeUnorderedBulkOp();
bulk.find( { status: "D" } ).update( { $set: { status: "I", points: "0" } } );
bulk.find( { item: null } ).update( { $set: { item: "TBD" } } );
bulk.execute()
有没有办法用Spring Data MongoDB实现类似的结果?
Is there any way to achieve similar result with Spring Data MongoDB ?
推荐答案
spring-data-mongodb 1.9.0.RELEASE 支持批量更新。下面是一个示例:
Bulk updates are supported from spring-data-mongodb 1.9.0.RELEASE. Here is a sample:
BulkOperations ops = template.bulkOps(BulkMode.UNORDERED, Match.class);
for (User user : users) {
Update update = new Update();
...
ops.updateOne(query(where("id").is(user.getId())), update);
}
ops.execute();
这篇关于Spring Data MongoDB和批量更新的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!