相关疑难解决方法(0)

在同一个mongodb查询中选择按计数分组和不同计数

我想做点什么

select campaign_id,campaign_name,count(subscriber_id),count(distinct subscriber_id)
group by campaign_id,campaign_name from campaigns;
Run Code Online (Sandbox Code Playgroud)

此查询给出除count之外的结果(distinct subscriber_id)

db.campaigns.aggregate([
    {$match: {subscriber_id: {$ne: null}}},
    {$group: { 
        _id: {campaign_id: "$campaign_id",campaign_name: "$campaign_name"},
        count: {$sum: 1}
    }}
])
Run Code Online (Sandbox Code Playgroud)

以下查询给出除count(subscriber_id)之外的结果

db.campaigns_logs.aggregate([
    {$match : {subscriber_id: {$ne: null}}},
    {$group : { _id: {campaign_id: "$campaign_id",campaign_name: "$campaign_name",subscriber_id: "$subscriber_id"}}},
    {$group : { _id: {campaign_id: "$campaign_id",campaign_name: "$campaign_name"}, 
                count: {$sum: 1}
              }}
])
Run Code Online (Sandbox Code Playgroud)

但我希望count(subscriber_id),count(distinct subscriber_id)在同一个结果中

mongodb mongodb-query aggregation-framework

23
推荐指数
2
解决办法
3万
查看次数