我正在使用Spring Data MongoDB,并且想要执行批量更新,就像这里描述的那样:http://docs.mongodb.org/manual/reference/method/Bulk.find.update/#Bulk.find.update
使用常规驱动程序时,它看起来像这样:
下面的示例初始化items集合的Bulk()操作构建器,并将各种多重更新操作添加到操作列表中。
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有什么方法可以达到类似的结果吗?
最佳答案
从 spring-data-mongodb 1.9.0.RELEASE 支持批量更新。这是一个示例:
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();