2014-01-14 51 views
1

我想通過C#驅動程序計算mongodb中的字段總和,同時滿足一定的條件,但我不知道如何解決這個問題。 我需要的是這樣的:在MongoDB和C#驅動程序中計算總和

var collection = Db.GetCollection<T>(key); 
var sumValue = collection.Find(new QueryDocument("Checked", true)) 
         .Aggregate(new BsonDocument ("$Sum", "Debit")); 

但我不知道如何使這項工作。任何幫助表示讚賞。

回答

1

如果您不想在檢索結果後在本地計算,則必須使用Aggregation Framework。請檢查sintax,因爲我沒有測試過它。

var match = new BsonDocument 
       { 
        { 
         "$match", 
         new BsonDocument 
          { 
           {"Checked", "true"}        
          } 
        } 
       }; 


var group = new BsonDocument 
       { 
        { 
         "$group", 
         new BsonDocument 
          { 
           {"_id", new BsonDocument {"_id","$_id"}}, 
           {"sum", new BsonDocument {"$sum","$Debit"} 
          } 
        } 
       }; 

var pipeline = new[] {match, group }; 
var result = coll.Aggregate(pipeline); 

Here你有更多的例子。