java - MongoDB java-driver-3.2.2 计数 find() 方法的结果

标签 java mongodb count find mongodb-java

我正在尝试计算 find() 方法的结果,但它不起作用。我正在使用 JAVA 的 mongodb-driver-3.2.2mongodb-driver-core-3.2.2

这是我用来连接到 MongoDB 的代码

MongoClient mongoClient = new MongoClient("localhost", 27017);
MongoDatabase database = mongoClient.getDatabase("database_name");
MongoCollection<Document> collection = database.getCollection("collection_name");

我使用以下代码在 MongoDb 中搜索:

collection.find(eq("status", 1));

方法“.count()”仅适用于整个集合,如下所示:

long a = collection.count();

但是当我尝试将它与 find() 方法结合使用时,它不起作用:

long a = collection.find(eq("status", 1)).count();

错误:

The method count() is undefined for the type FindIterable<Document>

所以,我的解决方案是:

long a = 0;
FindIterable<Document> results = collection.find(eq("status", 1));
for (Document current : results ) {
    a++;
}

我不喜欢这个解决方案。还有其他解决方案来计算结果吗?

最佳答案

Count 是集合对象上的方法,而不是 FindIterable 上的方法。它将过滤器作为可选参数,因此留在过滤器世界中:

collection.count(eq("status", 1));

关于java - MongoDB java-driver-3.2.2 计数 find() 方法的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37722238/

相关文章:

mongodb - Mongodb-在数据库或集合级别设置复制

sql - Select count(*)是否不返回SQLite中结果为0的行?

google-sheets - 如何在 Google 表格中设置群组

java - 编码从使用 JAXB 实现接口(interface)的类实例化的 Java 对象

java - 如何从文件路径中获取文件所在的文件夹路径?

java - 无法在Hadoop jar上加载application.properties(NullPointerException)

javascript - 蒙戈 : find by ObjectId is not defined in meteor?

java - SftpChannel.rename 失败,但 mv 命令有效。可能的原因是什么?

mongodb - 如何在 MongoDB 中删除或删除集合?

R:按类别计算唯一值