我有一个BsonDocuments集合,每个BsonDocuments都有一个名为&#34的字段;参与" (这是一个数字),还有一个名为" color"的字段。我想要所有BsonDocuments的总成本,其中" color" ="蓝色"。
到目前为止,我发现的是我需要做这样的事情:
Screen
我收到的关于类型方法的错误无法从使用中推断出聚合方法的参数。
简单地说,我想知道如何使用Aggregate Framework执行简单的数学运算。在这个例子中,我试图从我的集合中的所有BsonDocuments中总结参与字段的所有值。如果可能的话,Builder函数的使用会很好,但手动创建的BsonDocument也可以。
感谢您的时间
答案 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
}
}
}
}
}