这方面似乎缺乏mongoDB API文档。我试图使用聚合函数来获取某个集合中流行标签的数量。这是我希望执行的命令:
db.runCommand(
{ aggregate : "articles",
pipeline : [ { $unwind : "$Tags" },
{ $group : { _id : "$Tags", count : { $sum : 1 } }
} ]});
当我使用shell执行此操作时,我得到以下内容:
{
"result": [{
"_id": "2012",
"count": 3
}, {
"_id": "seattle",
"count": 5
}],
"ok": 1
}
我正在使用c#4.0,所以我想我更愿意把它作为一个动态对象,但我会采取任何我能得到的......
FWIW,我正在使用mongoDB for Windows,32位,v2.1.1(每晚)
答案 0 :(得分:4)
以下是相应的C#Driver Doc页面:RunCommand()。所以基本上你打电话给Database.RunCommand("MyCommand")
。对于需要(多个)属性的更复杂命令的示例,JIRA中的此票证可能会派上用场:CSHARP-478
答案 1 :(得分:1)
在MongoDB CSharp驱动程序2.0.0+中:
我使用以下语法来运行这样的命令:
var command = new CommandDocument
{
{"aggregate", "TestCollection"},
{
"pipeline", new BsonArray
{
new BsonDocument {{"$unwind", "$Tags"}},
new BsonDocument
{
{
"$group", new BsonDocument
{
{"_id", "$Tags"},
{"count", new BsonDocument {{"$sum", 1}}}
}
}
}
}
}
};
var result = db.RunCommand<BsonDocument>(command)["result"]
.AsBsonArray.ToList();