Ram*_*ein 29
在MongoDB v3.4之前,MongoDB不能正确支持小数.在此版本之前,它将小数作为字符串存储,以避免精度错误.
Pre v3.4将 
小数存储为字符串,但这会阻止算术运算.运营商as $min,, $avg......将无法使用.如果精确度不是很大,那么你可以切换到double.
v3.4 + 您需要确保满足以下前提条件:
featureCompatibilityVersion设置为'3.4'.如果您的数据库是由较旧的MongoDB版本创建的,并且您已将服务器升级到v3.4,那么您的数据库可能仍在旧版本上.如果已设置所有属性,则注册以下序列化程序以使用该decimal128类型:
BsonSerializer.RegisterSerializer(typeof(decimal), new DecimalSerializer(BsonType.Decimal128));
BsonSerializer.RegisterSerializer(typeof(decimal?), new NullableSerializer<decimal>(new DecimalSerializer(BsonType.Decimal128)));
Run Code Online (Sandbox Code Playgroud)
        我最近遇到了这个问题。我通过简单地像这样注释我的对象来解决它:
[BsonRepresentation(BsonType.Decimal128)]
public decimal Price {get; set;}
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           4485 次  |  
        
|   最近记录:  |