java - MongoDB如何使用Java驱动程序计算数组元素

标签 java arrays mongodb

我需要我的应用程序使用 Java 驱动程序 3.8 来计算文档内数组 foos 的大小。我知道我可以用 shell 做到这一点

db.collection.aggregate(
   [
      {
         $match: { _id: 123456789 }
      },
      {
         $project: {
            count: { $size: "$foos" }
         }
      }
   ]
)

但我不知道如何用java做到这一点,因为我发现生成$size运算符的唯一方法是Filters.size(String fieldName, int size) code> 旨在查找数组 fieldName 具有大小 size 的文档。我在 com.mongodb.client.model 包内搜索,但没有找到任何可以回答我的问题的内容。

最佳答案

不,Java 驱动程序中没有帮助程序来帮助 $project 阶段的聚合表达式。

尝试

Bson match = new Document("$match", Filters.eq("_id", 123456789 ));
Bson projection = new Document("$size", "$foos" );
Bson project = Aggregates.project(new Document("count", projection) );
collection.aggregate(Arrays.asList(match, project));

关于java - MongoDB如何使用Java驱动程序计算数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51753113/

相关文章:

java - 依赖注入(inject),模拟外部库中的东西?

java - 打印 Java 2D 数组的最佳方法?

mongodb - 只想显示它所属的产品的评论

mongodb - Mongodb - 过滤嵌套数组中的数据元素

java - 如何解密从服务器收到的字符串?

java - 添加带有源的 Maven 模块作为另一个模块

c - 未初始化的 char 数组的行为

c++ - std::string(char* char_array) 是如何实现的?

Python Numpy Array 邻居的geht值

mongodb - 读取配置文件时出错。数据库