聚合C#2.0驱动程序后的MongoDb计数

弗拉迪斯拉夫·富达克

我有以下汇总原则

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

这样会得到以下结果:

{
    "result" : [ 
        {
            "_id" : {
                "ProfileId" : ObjectId("55f6c727965bb016c81971ba")
            }
        }, 
        {
            "_id" : {
                "ProfileId" : ObjectId("55f6c727965bb016c81971bb")
            }
        }
    ],
    "ok" : 1
}

但是似乎它将对客户端进行计数操作,但是如何执行呢MongoDb我有MongoDb 2.0 C# driverMongoDb v. 3.0.2

亚历克斯·克鲁普卡

将常数字段添加到组函数中,然后再次对常数字段进行分组(以便将所有结果分组为一个组),总和为1。第一个(也是唯一的)结果将具有该总和。

例如

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章