为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕村9548890 2021-07-01 10:15:43
我需要我的应用程序foos使用 Java 驱动程序 3.8 计算文档中数组的大小。我知道我可以用 shell 做到这一点db.collection.aggregate(   [      {         $match: { _id: 123456789 }      },      {         $project: {            count: { $size: "$foos" }         }      }   ])但我不知道如何用 java 来做到这一点,因为$size我发现的唯一一种产生运算符的方法Filters.size(String fieldName, int size)是寻找 arrayfieldName具有 size 的文档size。我在 com.mongodb.client.model 包中进行了搜索,但没有找到可以回答我的问题的内容。
查看完整描述

2 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

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


查看完整回答
反对 回复 2021-07-07
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

您可以创建一个新字段并将数组的大小放入其中并将其用于计数或排序。

使用“addFields”java 助手

addFields(new Field("productsCount",
            new Document("$size", "$products")));

在哪里

  1. productsCount ' 是新字段的名称

  2. 产品”是数组

  3. $size ' 是 MongoDB 聚合。


查看完整回答
反对 回复 2021-07-07
  • 2 回答
  • 0 关注
  • 152 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信