C# Mongo驱动程序 - MongoCollection.Group方法

3
我尝试在互联网上搜索,但就是找不到如何使用这个方法。我已经尝试查看mongo控制台以将两者相关联,但它让我感到非常困惑。有人能帮我解决这个问题或指向帮助的方向吗?
我正在使用来自mongodb.org的C#驱动程序。
我有以下文档:
ObjectId Id ObjectId ForeignId
我想计算文档的数量并按ForeignId字段分组计数。谢谢!

你看过group的(非C#)文档了吗?http://www.mongodb.org/display/DOCS/Aggregation#Aggregation-Group - Ian Mercer
你使用的是哪个C#驱动程序?这里有几个选项。 - Bryan Migliorisi
是的,我试过了。我知道如何在控制台中进行分组,但我无法将其转换为驱动程序 :( - poindexter12
在上方添加了我正在使用的驱动程序。 - poindexter12
2个回答

4

看起来有点不对(参数的顺序)。应该是:

var document = new BsonDocument("count", 0);
var result = myCollection.Group<BsonDocument>(
    Query.Null,
    "ForeignId",
    document,
    new BsonJavaScript("function(doc, out){ out.count++; }"),
    null
);

在MongoCollectionTests.cs文件的TestGroup单元测试中有一个类似的例子。

迟做总比不做好,看起来我们有不同版本的驱动程序 :) - poindexter12
如果您从Group方法中删除通用的<BsonDocument>,那么现在它才能正常工作。 - Vyrotek

0

我通过一些黑客技巧,我已经回答了自己的问题:

var document = new BsonDocument("count", 0);
myCollection.Group<BsonDocument>(
    "ForeignId",
    null,
    document,
    new BsonJavaScript("function(doc, out){ out.count++; }"),
    null
);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接