mongoTemplate 批量更新

mongoTemplate 批量更新示例

@Autowired
private MongoTemplate mongoTemplate;

public void bulkUpsert(List<Document_Name> documents) {
    BulkOperations bulkOps = mongoTemplate.bulkOps(BulkOperations.BulkMode.UNORDERED, Document_Name.class, Collection_Name);
    for (YourDocument document : documents) {
        Query query = new Query(Criteria.where("_id").is(document.getId())); // 指定根据哪个key来判断数据是否存在
        Update update = new Update();
        update.set("field1", document.getField1()); // 设置需要更新的字段,这里只是一个例子,你需要将这里替换为你需要更新的字段
        update.set("field2", document.getField2());
        // 更多的字段...
        bulkOps.upsert(query, update);
    }
    System.out.println("开始执行 bulkOps.execute()");
    BulkWriteResult result = bulkOps.execute();
    System.out.println("bulkOps.execute() 执行结果: " + result);
}

注意:
1.Collection_Name 非必填字段

BulkOperations 的 bulkOps 方法在没有指定第三个参数的情况下,默认使用您在第二个参数中指定的类对应的集合(collection)。在 MongoDB 中,集合的名称通常是类名的小写形式。如果您使用的是 Spring Data MongoDB,并且在您的 YourDocument 类上定义了 @Document 注解,那么集合名称将是该注解中指定的名称。如果没有 @Document 注解,Spring Data MongoDB 将使用该类的简单类名并将其转换为小写作为集合名。
例子:

@Document(collection = "collection_name")
public class Document_Name {
    // ...
}

在这种情况下,如果您调用 bulkOps 方法且没有提供第三个参数,将会使用 “collection_name” 这个集合。
类 Document_Name 没有 @Document 注解,那么集合名将默认为 “document_name”(类名的小写)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值