我希望从所有文档中得到一个属性的和,但没有得到适当的值,因为属性数据类型是可空的十进制,当属性是整数时,适当的和正在得到。
var data1 = mongoCollection.Group(e => e.ClientId,
g => new
{
Total1 = g.Sum(e => e.Abc.Val1),
Total2 = g.Sum(e => e.Abc.Val2),
Total3 = g.Sum(e => e.Abc.Val3),
Total4 = g.Sum(e => e.Abc.Val4),
}).ToList();
需要帮助。
发布于 2022-11-04 05:19:40
当您从MongoDB核心驱动程序保存时,MongoDB将十进制值保存为字符串,这就是为什么和没有执行,因为MongoDB中的值是字符串类型。
您需要将[BsonRepresentation(BsonType.Decimal128)]
属性添加到c#类的十进制属性中,以便MongoDB能够理解在保存数据期间这个值是十进制的。
或者,您可以在启动类中注册BsonSerializer,如下所示,它考虑类的所有十进制属性,以便将其保存为十进制。
BsonSerializer.RegisterSerializer(typeof(decimal), new DecimalSerializer(BsonType.Decimal128));
BsonSerializer.RegisterSerializer(typeof(decimal?), new NullableSerializer<decimal>(new DecimalSerializer(BsonType.Decimal128)));
https://stackoverflow.com/questions/74300803
复制