MongoDb聚合C#2.0驱动后计数

Vla*_*dak 9 c# mongodb mongodb-csharp-2.0

我有以下聚合pipline

var count = dbCollection.
Aggregate(new AggregateOptions { AllowDiskUse = true }).Match(query).
Group(groupby).
ToListAsync().Result.Count();
Run Code Online (Sandbox Code Playgroud)

这得到以下结果:

{
    "result" : [ 
        {
            "_id" : {
                "ProfileId" : ObjectId("55f6c727965bb016c81971ba")
            }
        }, 
        {
            "_id" : {
                "ProfileId" : ObjectId("55f6c727965bb016c81971bb")
            }
        }
    ],
    "ok" : 1
}
Run Code Online (Sandbox Code Playgroud)

但它似乎会在客户端进行计数操作,但如何执行呢MongoDb?我有MongoDb 2.0 C# driver&MongoDb v. 3.0.2

Ale*_*pka 6

向组函数添加一个常量字段,然后在常量字段上再次分组(以便将所有结果分组到一个组中),总和为1.第一个(也是唯一的)结果将具有总和.

防爆.

var count = dbCollection.
Aggregate(new AggregateOptions { AllowDiskUse = true }).Match(query).
Group(groupby).Group(<id>:{ConstantField},Total:{$sum:1})
ToListAsync().Result.First().GetValue("Total").
Run Code Online (Sandbox Code Playgroud)