我尝试执行此查询:
MongoCollection<AnalyticsClicks> dbCollection = DetermineCollectionName<AnalyticsClicks>();
var query = from c in dbCollection.AsQueryable()
where c.UserId == userId && c.CampaignId == campaignId
select new
{
c.Email,
c.Link
};
var res = query.GroupBy(x => x.Email, b => b.Link).Count();
但我有例外:
不支持GroupBy查询运算符。
我在robomongo中写了一个等效请求
db.analyticsClicks.aggregate(
{ $match: { UserId: 4790, CampaignId: 92093}},
{ $group : {
"_id" : {
"Email" : "$Email",
"Link" : "$Link",
}
}
})
它有效,但是我还需要获取当前集合中的项目数。如何使用C#mongo驱动程序重写此查询?
谢谢,这是我的工作例子
MongoCollection<AnalyticsClicks> dbCollection = DetermineCollectionName<AnalyticsClicks>();
var match = new BsonDocument
{
{
"$match",
new BsonDocument {{"UserId", userId}, {"CampaignId", campaignId}}
}
};
var group = new BsonDocument
{
{ "$group",
new BsonDocument
{
{ "_id", new BsonDocument {{"Email", "$Email" }, {"Link", "$Link"}, }},
}
}
};
AggregateArgs pipeline = new AggregateArgs()
{
Pipeline = new[] { match, group }
};
var result = dbCollection.Aggregate(pipeline);
return Convert.ToInt32(result.Count());
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句