You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB聚合查询问题:统计指定请求者的已开启、已关闭任务数量

正确聚合查询语句

db.getCollection("sample").aggregate([
    // 筛选匹配Requestor.Info._id为155的文档
    {
        $match: {
            "Requestor.Info._id": "155"
        }
    },
    // 对所有匹配文档做全局聚合统计
    {
        $group: {
            _id: null, // 所有匹配文档归为同一组统计
            Open: {
                $sum: {
                    $cond: [{$eq: ["$JobStatus.Status", 0]}, 1, 0]
                }
            },
            Closed: {
                $sum: {
                    $cond: [{$eq: ["$JobStatus.Status", 1]}, 1, 0]
                }
            }
        }
    },
    // 移除默认返回的_id字段,匹配预期输出格式
    {
        $project: {
            _id: 0,
            Open: 1,
            Closed: 1
        }
    }
])

原写法问题说明

  • $project阶段是对单条文档做字段处理,无法跨文档累计求和,原写法只会给每条匹配文档的Open、Closed字段赋值0或1,不会统计总数
  • $sum做条件计数需要在$group阶段配合$cond条件表达式:符合条件返回1累加,不符合返回0不累加

执行上述语句后即可返回预期结果:{ "Open" : 2, "Closed" : 1 }

内容的提问来源于stack exchange,提问作者muscleman71

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 04:54:02