mongodb---spring-data-mongodb聚合统计数组中元素个数

这篇博客介绍了如何在shell和Spring Data MongoDB中统计文档内数组字段的元素个数。通过示例展示了使用$size操作符来获取`likeContainer`字段的点赞数,并将结果映射到`likeNum`字段。这种方法对于分析评论或用户行为数据非常有用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

shell写法:

db.commentEo.aggregate({$project: { NumberOfElements: { $size:"$likeContainer" }}})

spring-data 实现:

从1.5开始支持project $size,使用size操作符统计数组中元素个数并映射输出

下方demo案例我使用数组存likeContainer储了点赞用户id,想要获取点赞数需要统计数组中元素个数。并将结果输出映射到likeNum字段

  Aggregation agg = Aggregation.newAggregation(
                Aggregation.match(Criteria.where("_id").is(35695977)),
                Aggregation.project("likeNum").and("likeContainer").size().as("likeNum")
        );
        System.out.println(mongoOps.aggregate(agg,"commentEo", CommentEo.class).getMappedResults().get(0));

从下方可以看出我们已经成功得获取到数组中元素个数,本条评论获得了一万九千多点赞
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值