//http://docs.mongodb.org/manual/core/aggregation-pipeline-optimization/#aggregation-pipeline-sequence-optimization public double Sum <T>(IMongoQuery query, IMongoGroupBy fieldsGroupBy) { var _match = query.ToMatchDocument(); var _group = fieldsGroupBy.ToGroupDocument(MongoExtensions.GetCollectionName <T>()); var _result = Aggregate <T>(_match, _group).SingleOrDefault(); return(_result != null?Convert.ToDouble(_result.GetValue(1)) : 0); }