MongoDB按关联引用字段status_id.libelle分组统计文档数量问题
MongoDB关联状态字段分组统计实现方案
前提说明
- 业务单据表名:
business_bills,存储所有业务申请数据,通过status_id字段关联状态字典 - 状态字典表名:
status_dict,存储所有状态枚举及对应名称
聚合查询语句
直接在状态字典表上执行以下聚合操作即可实现需求,无匹配单据的状态会自动返回统计值为0:
db.status_dict.aggregate([ // 关联业务单据表,匹配对应状态的所有单据 { $lookup: { from: "business_bills", localField: "_id", foreignField: "status_id", as: "matched_bills" } }, // 格式化输出字段,统计每个状态的单据数量 { $project: { _id: 0, libelle: 1, total: { $size: "$matched_bills" } } } ])
优化提示
如果业务单据表数据量较大,可给business_bills表的status_id字段添加索引,大幅提升关联查询效率。
内容的提问来源于stack exchange,提问作者alexis
相关产品推荐
相关产品推荐

