簡體   English   中英

C#Mongodb。 所有文件的總和字段

[英]C# Mongodb. Sum field for all documents

我需要計算集合中所有文檔的總數。 例如,我有以下三個文檔:

_id: 1,
clientId: 1,
cash: 500

_id: 2,
clientId: 1,
cash: 100

_id: 3,
clientId: 2,
cash: 200

因此,我想對特定clientId cash字段求和。 對於客戶端1,我想要600 ,對於客戶端2,我想要200 這是我在MongoDB中首次使用聚合框架。 我檢查了文檔以及SO的其他問題,但無法弄清楚為什么必須使用group子句。 如果只想總結一下,為什么我需要它。 我事件嘗試使用Group但無法對其進行編譯:

_collection.Aggregate().Match(t=>t.ClientId == 1).Group(null, g => new
            {
                Total = g.Sum(o => o.Cash)
            });

方法'Group'的重載沒有2個參數

PS。 我不想使用BsonDocument$sum關鍵字之類的東西。 我想用更多的C#方式制作它。

這個可以嗎?

var Total = _collection.AsQueryable().Where(x => x.ClientId == 2).Sum(x => x.Cash);

編輯:這里的合計是過度殺傷力,但它可能會像這樣:

var x = MongoCollection.Aggregate()
                    .Group(
                            doc => doc.clientId,
                            group => new
                            {
                                clientId = group.Key,
                                Total = group.Sum(y => y.sum)
                            }
                    ).ToList().FirstOrDefault(c => c.clientId == 2).Total;

在Db中執行聚合,直到聚合到List()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM