MongoDB驱动程序C#尝试进行基本数学但不了解聚合

时间:2016-01-16 07:10:46

标签: c# asp.net mongodb bson

我有一个BsonDocuments集合,每个BsonDocuments都有一个名为&#34的字段;参与" (这是一个数字),还有一个名为" color"的字段。我想要所有BsonDocuments的总成本,其中" color" ="蓝色"。

到目前为止,我发现的是我需要做这样的事情:

Screen

我收到的关于类型方法的错误无法从使用中推断出聚合方法的参数。

简单地说,我想知道如何使用Aggregate Framework执行简单的数学运算。在这个例子中,我试图从我的集合中的所有BsonDocuments中总结参与字段的所有值。如果可能的话,Builder函数的使用会很好,但手动创建的BsonDocument也可以。

感谢您的时间

1 个答案:

答案 0 :(得分:0)

当您使用$group时,您需要告诉聚合框架您想要分组的字段。您可以在_id字段中对组对象执行此操作。此外,如果您想要简单的文档计数,则需要使用{ $sum : 1 }来计算每个文档一个。如果使用字段名称,则告诉聚合将该字段的值解释为数字并将其添加。

在MongoDB shell语法中:

{ $group: {
     _id: "$engagement",
     Sum: { $sum: 1 }
}}

转换为C#(未经测试!):

{ "$group", new BsonDocument 
    { 
        { "_id", "$engagement" }, 
        { "Sum", new BsonDocument 
            { 
                { 
                    "$sum", 1 
                } 
             } 
        } 
    } 
}