Mongo Aggregate与使用C#Driver的Collection不同

时间:2015-08-17 13:23:07

标签: c# mongodb aggregation-framework

我在MongoDB中有以下工作聚合语句:

db.Forms.aggregate( [
{ $match: { Id: { $nin: db.Forms.distinct("Id", {"Status": "DELETE"}, {Id: 1}) } }},
{ $group: { _id: "$Id", lastModifiedId: { $last: "$_id" } } }
]).result

该语句选择所有的表单在Forms表上有删除记录,并返回其最后修改的行。

我想知道的是:如何使用MongoDB C#驱动程序编写上面的聚合语句?这就是我到目前为止所做的:

var aggregate = _forms.Aggregate()
//.Match(new BsonDocument { { "Id", new BsonDocument("$nin", "db.Forms.distinct(\"Id\", {\"Status\": \"DELETE\"}, {Id: 1})") } })
.Group(new BsonDocument { { "_id", "$Id" }, { "lastModifiedId", new BsonDocument("$last", "_id") } });

var aggregateResults = aggregate.ToListAsync().Result.ToList(); 

我只需要将Match语句整理出来。

我看了一些关于聚合的文章,我理解了这个概念(我认为),但是" db.Forms.distinct"是我遇到问题的地方,我发现没有一篇文章处理过这种情况。

如果有更好的方法,请告诉我。

谢谢!

0 个答案:

没有答案