我在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"是我遇到问题的地方,我发现没有一篇文章处理过这种情况。
如果有更好的方法,请告诉我。
谢谢!