如何使用Java在MongoDB 3中使用多个过滤器批量更新文档

时间:2017-02-20 09:08:02

标签: java mongodb filter driver bulk

我想像这样制作批量更新:

        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
            )
    );

但它显然不起作用,我无法在任何地方找到它。有谁知道有没有办法做到这一点?谢谢:))

1 个答案:

答案 0 :(得分:0)

使用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
    )
);