MongoDb每列存在

问题描述 投票:0回答:1

运行诸如以下的聚合:

[ 
   { 
      "$match":{ 
         "datasourceName":"Startup Failures",
         "sheetName":"Data",
         "Cost":{ 
            "$exists":true
         },
         "Status":{ 
            "$exists":true
         }
      }
   },
   { 
      "$group":{ 
         "Count of Cost":{ 
            "$sum":1
         },
         "Count of Status":{ 
            "$sum":1
         },
         "_id":null
      }
   },
   { 
      "$project":{ 
         "Count of Cost":1,
         "Count of Status":1
      }
   }
]

存在过滤器的结果实际上是过滤掉不包含“成本”或“状态”的整个文档。这样成本和状态的预测(计数)是相同的。我不想只过滤单个列的整个文档,以使我得到的投影是存在成本的文档数(成本计数),而另一个投影是存在状态的文档数。就我的数据而言,这些将给出两个单独的数字。

mongodb aggregation-framework
1个回答
0
投票

我使用$facet进行汇总;这允许并行查询每个文档传递。因此,我们将CostStatus进行查询并将其计为同一查询的两个方面。

© www.soinside.com 2019 - 2024. All rights reserved.