首页 > 解决方案 > MongoDB GroupBy 聚合和计数文档 C#

问题描述

我需要根据客户的状态来计算文件的数量。所以我需要使用聚合函数,然后根据状态分组。我为此使用了以下代码,但问题是在结果中我正在获取文档列表,但我只想拥有该文档的状态和数量。任何机构都可以帮助调整查询以实现结果。

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

提前致谢

标签: c#mongodblinqgroup-byaggregate-functions

解决方案


我对@mickl的回答感到满意,并且根据我的要求进行了测试,它运行良好,但这是我选择应用程序的方式,因为这是我所习惯的。方法是使用集合作为可查询

var result = collection.AsQueryable()
            .GroupBy(x => x.status)
            .Select(x => new CustomerDetailsList 
            { 
                ActiveType = x.Key, Count = x.Count()
            }).ToList();

我以这种方式使用了更多的 LINQ,所以我选择它是因为它对我来说更好理解。

您可以选择此方法或@mickl 演示的任何方法


推荐阅读