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));
从下方可以看出我们已经成功得获取到数组中元素个数,本条评论获得了一万九千多点赞