我需要我的应用程序使用 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/