MongoDB聚合查询如何分别统计up、down两个字段的出现次数?
MongoDB 双字段独立计数聚合方案
你可以通过构造字段数组再拆分的方式实现需求,完整聚合管道如下:
[ // 构造包含up、down值的标签数组 { "$project": { "labels": ["$up", "$down"] } }, // 拆分数组为独立文档,每个标签对应一条独立记录 {"$unwind": "$labels"}, // 按标签值分组统计出现次数 { "$group": { "_id": "$labels", "count": {"$sum": 1} } }, // 格式化输出字段 {"$project": {"_id": 0, "label": "$_id", "count": "$count"}}, // 按标签升序排序 {"$sort": {"label": 1}}, // 过滤空计数(聚合结果count最小为1,无特殊需求可省略该阶段) {"$match": {"count": {"$gt": 0}}} ]
在PyMongo中直接将上述管道传入collection.aggregate()方法执行即可得到你预期的输出格式。
内容的提问来源于stack exchange,提问作者chaztize7
相关产品推荐
相关产品推荐

