Java mongodb批量更新相同filtername不同value的值
时间: 2023-06-12 14:02:38 浏览: 111
MongoDB 批量插入及更新
你可以使用 MongoDB 的 Bulk Write API 来批量更新相同 filter 的不同文档。下面是一个 Java 示例代码:
```java
MongoCollection<Document> collection = database.getCollection("your_collection_name");
List<UpdateOneModel<Document>> updates = new ArrayList<>();
// 构造要更新的文档
Document updateDoc1 = new Document("$set", new Document("field1", "value1"));
Document updateDoc2 = new Document("$set", new Document("field1", "value2"));
Document updateDoc3 = new Document("$set", new Document("field1", "value3"));
// 构造 filter
Bson filter = Filters.eq("filter_name", "filter_value");
// 构造 BulkWriteOperation
updates.add(new UpdateOneModel<>(filter, updateDoc1));
updates.add(new UpdateOneModel<>(filter, updateDoc2));
updates.add(new UpdateOneModel<>(filter, updateDoc3));
BulkWriteResult result = collection.bulkWrite(updates);
System.out.println("更新文档数:" + result.getModifiedCount());
```
在这个示例代码中,我们先构造了三个要更新的文档 `updateDoc1`、`updateDoc2` 和 `updateDoc3`,它们的 `field1` 字段分别为 `value1`、`value2` 和 `value3`。然后我们构造了一个 filter,它的 `filter_name` 字段值为 `filter_value`。接着我们使用 Bulk Write API 构造了三个 `UpdateOneModel` 对象,每个对象都指定了相同的 filter 和不同的 updateDoc。最后我们将这三个 `UpdateOneModel` 对象加入到一个 `List` 中,然后调用 `bulkWrite` 方法批量执行更新操作。
阅读全文