我想像这样进行批量更新:
List<WriteModel<Document>> writes = new ArrayList<WriteModel<Document>>();
writes.add(
new UpdateOneModel<Document>(
new Document("car", "Ferrari"), // filter
new Document("$set", new Document("color", "Black")) // update
)
);
但我想输入多个过滤器。我认为它会是这样的:
List<WriteModel<Document>> writes = new ArrayList<WriteModel<Document>>();
writes.add(
new UpdateOneModel<Document>(
new Document(and(eq("car", "Ferrari"), eq("color", "Red"), // filter
new Document("$set", new Document("color", "Black")) // update
)
);
但是显然不行,到处都找不到。有谁知道是否有办法做到这一点?谢谢:)
最佳答案
使用 append 添加其他键:
List<WriteModel<Document>> writes = new ArrayList<WriteModel<Document>>();
writes.add(
new UpdateOneModel<Document>(
new Document("car", "Ferrari").append("color", "Red"), // filter
new Document("$set", new Document("color", "Black")) // update
)
);
关于java - 如何使用 Java 在 MongoDB 3 中使用多个过滤器执行文档的批量更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42340346/