1
當我運行dbCollection.Aggregate().Group(groupby).Match(query)
我沒有任何擴展方法來獲得聚合的記錄數。但我可以運行ToListAsync
,然後獲得Count()
。我怎樣才能收到一些記錄? 我有MongoDb v 3.0.2
和c# driver 2.0
MongoDb c#2.0驅動程序 - 我如何計算服務器上的聚合計數?
當我運行dbCollection.Aggregate().Group(groupby).Match(query)
我沒有任何擴展方法來獲得聚合的記錄數。但我可以運行ToListAsync
,然後獲得Count()
。我怎樣才能收到一些記錄? 我有MongoDb v 3.0.2
和c# driver 2.0
MongoDb c#2.0驅動程序 - 我如何計算服務器上的聚合計數?
你應該增加一個組$總和
var result = await collection
.Aggregate()
.Group(groupby)
.Match(query)
.Group(new BsonDocument
{
{ "_id", "_id" },
{"count", new BsonDocument("$sum", 1)}
})
.FirstAsync();
var count = result["count"].AsInt32;
聽起來你正試圖建立像什麼Solr的或彈性搜索返回一個「總數」的結果以及任何過濾的數據。爲此,您應該運行單獨的查詢,如果這是您真正要求的。 –
我想要得到返回結果的數量而不會收到這些結果 –
聚合返回的「遊標」目前不支持來自'.find()'的標準遊標這樣的事情。要獲得聚合結果數,最好做你正在做的事情,或者如果流式傳輸響應,則按照計算結果進行計數並將結果添加到輸出流中。 –