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怎么办