通过聚合管道添加和计数字段-Mongo

时间:2019-05-05 18:54:40

标签: mongodb filter aggregation-framework match grouping

我有一组数据:

Branch   Status   Product_Category   Number_Of_Clients   Amount
----------------------------------------------------------------
1        Ongoing       Product1           20               500
2        Not_Started   Product2           30               600     

有数百个分支机构,几种状态,6个产品类别。

对于每个分支,我需要做的是,将每种类型的“ Product_Category”归为一组,计算不同的“ Status”数量,总计“ Number_Of_Clientes”,然后添加所有“ Amount”。

使用Compass上的聚合管道,我尝试首先按分支分组:

{
  _id: '$Branch',
  set_branch: {
    $addToSet: '$_id'
  },
  count_branch_documents: {
    $sum: 1
  }
}

我得到了同一个分支的文档计数,但是随后在尝试计算该分支的不同状态时遇到了问题,然后我必须添加客户数量并求和。

我尝试将$count$sum以及分组,但没有得到想要的。

我的理想输出看起来像这样:

Branch: 1
   Count_Branches: 2
Product_Category: 

   Product: Product1
      Status: 
         Ongoing: 2
         Not_Started: 5
      Total_Number_Of_Clients: 7
      Total_Amount: 500

   Product: Product2
      Status: 
         Ongoing: 3
         Not_Started: 2
      Total_Number_Of_Clients: 5
      Total_Amount: 600

我的最终目标是将其分配给其他收藏夹。

非常感谢您的帮助!

0 个答案:

没有答案