获取mongodb c#中所有字段的和



我有一个mongodb,看起来像这样

[
{
    "client_id": "abc",
    "product_id": "123",
    "weight": {
        "value": 100
        "unit": "kg"
    }
},
{
    "client_id": "def",
    "product_id": "456",
    "weight": {
        "value": 200
        "unit": "kg"
    }
}
]

我需要得到一个特定的客户端id和使用mongodb c#客户端产品id的权重值的总和,我怎么能做到这一点?

我试过了,但它总是返回0

var total_weight = await Collection.AsQueryable()
                        .Where(
                        x => x.client_id == "abc" &&
                        x => x.product_id== "123")
                        .SumAsync(x => x.weight.value);

感谢

我想你正在寻找这个查询,所以你可以尝试这个代码:

var total_weight = await Collection.AsQueryable<YourModel>()
                .Where(x => x.client_id == "abc" && x.product_id == "123")
                .GroupBy(x => new { x.client_id, x.product_id })
                .Select(x => x.Sum(y => y.weight.value))
                .FirstOrDefaultAsync();

最新更新