如何在MongoDB Compass中用单聚合管道实现多统计结果?
MongoDB聚合查询实现按日期统计条目数与唯一用户数
完全可以通过单个聚合管道实现需求,具体的聚合管道如下:
[ { $group: { _id: "$date", entries: { $sum: 1 }, uniqueUsersList: { $addToSet: "$user" } } }, { $project: { _id: 0, date: "$_id", entries: 1, uniqueUsers: { $size: "$uniqueUsersList" } } } ]
管道各阶段说明:
- $group阶段:以
date字段作为分组依据,$sum:1用于统计每组的总条目数(对应结果中的entries);$addToSet会自动去重,将每组内的所有不重复user收集到uniqueUsersList数组中。 - $project阶段:将分组时的
_id(即原date字段)重命名为date,隐藏默认的_id字段;保留统计好的entries,并通过$size计算uniqueUsersList数组的长度,得到该日期下的唯一用户数uniqueUsers。
你只需要将上述聚合管道复制到MongoDB Compass的聚合查询面板中,即可直接得到符合要求的结果文档。
内容的提问来源于stack exchange,提问作者td2003
相关产品推荐
相关产品推荐

