Java MongoDB 驱动程序 : How to update all Documents in Collection?

标签 java mongodb mongo-java-driver

以下代码允许我们更新 customerDetail 集合中 customer_user_id1 的所有文档:

db.getCollection("customerDetail")
        .updateMany(Filters.eq("customer_user_id", 1),
                Updates.combine(
                        Updates.set("birth_year", "birth_year"),
                        Updates.set("country", "country")
                ));

但是我需要更新集合中的所有文档,因此我需要找到一种方法来要求Java驱动程序不应用任何过滤器来更新查询,但正如我可以看到updateMany 方法 Filter 是强制属性,我不能只传递 null

那么如何更新所有文档呢?

最佳答案

我经常使用的一个选项

mongoCollectionObject
        .updateMany(new Document(), //
                new Document("$set"
                        new Document("birth_year", "birth_year")
                        .append("country", "country")
                ));

第一个是条件 - 因为它是空的 - 相当于 {} - 表示所有文档

第二个是要为所有匹配文档设置的文档

关于Java MongoDB 驱动程序 : How to update all Documents in Collection?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63284575/

相关文章:

mongodb - 在 mongodb 查询中使用 $lt 或 $gt 运算符

mongodb - 我可以增加mongodb中每个集合的最大索引数吗?

java - MongoDB Java 驱动程序 4.2.2 - 将 .iterator 或 .into 与 .find 链接时出现 java.lang.noSuchMethodError

macos - 在 macOS 上连接失败的 mongodb

java - 如何检查是否与 Java 建立了 MongoDB 连接?

java - mongo java 驱动程序 2.14.0。更改已弃用的代码

java - UFT/QTP : Count child objects in Java Internal Frame

java - Singleton bean如何在Spring Boot的不同地方 Autowiring

java - java同时读写

java - 谷歌播放会自动在主屏幕上创建我们的应用程序的快捷方式吗?