C# MongoDB GroupBy聚合和计数文档C

C# MongoDB GroupBy聚合和计数文档C,c#,mongodb,linq,group-by,aggregate-functions,C#,Mongodb,Linq,Group By,Aggregate Functions,我有一个要求,以获得基于客户状态的文件计数。所以我需要使用聚合函数,然后根据状态分组。我使用了下面的代码,但问题是,结果是我得到了文档列表,但我只想得到该列表下文档的状态和数量。请任何机构帮助调整查询以获得结果 var result = collection.Aggregate() .Group( x => x.status, g => new

我有一个要求,以获得基于客户状态的文件计数。所以我需要使用聚合函数,然后根据状态分组。我使用了下面的代码,但问题是,结果是我得到了文档列表,但我只想得到该列表下文档的状态和数量。请任何机构帮助调整查询以获得结果

var result = collection.Aggregate()
                    .Group(
                        x => x.status,
                        g => new
                        {
                            Result = g.Select(x => new CustomerDetailsList
                            {
                                ActiveType = x.status,
                                Count = g.Count()
                            }
                             )
                        }
                    );

提前感谢

您获得每个键的文档列表的原因是您正在运行此嵌套选择,您只需:

collection.Aggregate()
          .Group(
              x => x.status,
              g => new CustomerDetailsList
              {
                  ActiveType = g.Key,
                  Count = g.Count()
              }).ToList();

我对的答案很满意,它工作得很好,我根据自己的要求进行了测试,但这是我在应用程序中选择的方式,因为这是我感到舒服的方式。方法是将集合用作可查询的集合

var result = collection.AsQueryable()
            .GroupBy(x => x.status)
            .Select(x => new CustomerDetailsList 
            { 
                ActiveType = x.Key, Count = x.Count()
            }).ToList();
我以这种方式使用了更多LINQ,所以我选择这种方式,因为它更便于我理解


您可以选择这两种方法中的任何一种,也可以选择@mickl

演示的方法,如果您尝试使用ActiveType=x.key,Count=g.Count怎么办