MongoDB(v3.2.4)流利 - 聚合组总和始终为0

时间:2016-04-12 13:29:54

标签: c# mongodb fluent

我正在尝试过滤集合中的数百万个文档,然后对其中一个属性应用分组。我需要知道金额属性的总和。我已经编写了以下代码,但总和似乎总是0,即使数量存在于集合中的每个文档中。

var results = collection.Aggregate().Match(expression)
            .Project(data => new
            {
                Id = data.Id,
                Name = data.Name,
                Amount = data.NetAmount
            })
            .Group(
                key => new { key.Id, key.Name },
                grouping => new
                {
                    IdAndName = grouping.Key,
                    GroupTotalAmount = grouping.Sum(obj => obj.Amount)
                })
            .Project(arg => new
            {
                Id = arg.IdAndName.Id,
                Name = arg.IdAndName.Name,
                Amount = arg.GroupTotalAmount
            });

如果我使用1代替obj.Amount,则在上面的代码段中,我会获得分组集合的计数。

此外,如果我只是在管道中没有组进行投影,我可以看到为每个文档填充Amount值。

这是我在上面代码中的expression

Expression<Func<MyObject, bool>> expression = data => data.PropertyA == 55 && data.PropertyB == 2000;

任何帮助都将受到高度赞赏。感谢。

0 个答案:

没有答案