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

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

从下方可以看出我们已经成功得获取到数组中元素个数,本条评论获得了一万九千多点赞
mongodb---spring-data-mongodb聚合统计数组中元素个数_第1张图片

你可能感兴趣的:(redis+mongodb,mongodb,spring,java)