如何统计MongoDB中status为false的重复邮件数量?
MongoDB统计status为false的重复邮件数量
你可以通过在现有聚合阶段后添加$group(和可选的$sort)阶段来实现需求,同时建议合并多个$match阶段以提升查询效率:
完整聚合查询
[ { '$match': { 'status': false, 'category': 'students', 'affiliation': 'njmpti_students' } }, { '$group': { '_id': '$email', 'count': { '$sum': 1 } } }, // 可选:按计数降序排序,便于查看结果 { '$sort': { 'count': -1 } } ]
阶段说明
- $match:合并原有的三个过滤条件,一次性筛选出符合要求的文档,减少后续处理的数据量,提升查询性能。
- $group:以
email为分组依据,通过$sum:1统计每个邮箱对应的文档数量,也就是该邮箱的出现次数。 - $sort(可选):按统计出的
count字段降序排列,让重复次数多的邮箱优先展示。
示例结果
针对你提供的测试数据,运行上述查询后会得到以下结果:
[ { "_id": "sample_1@gmail.com", "count": 2 }, { "_id": "sample_3@gmail.com", "count": 1 } ]
完全匹配你预期的统计结果:sample_1@gmail.com出现2次,sample_3@gmail.com出现1次,sample_2@gmail.com因status=true被过滤。
内容的提问来源于stack exchange,提问作者Stykgwar
相关产品推荐
相关产品推荐

