MongoDB no admite correctamente decimales hasta MongoDB v3.4. Antes de esta versión, almacenaba decimales como cadenas para evitar errores de precisión.
Anterior a la versión 3.4 Almacene decimales como cadenas, pero esto evita las operaciones aritméticas. Operadores como $min
, $avg
, ... no estará disponible. Si la precisión no es gran cosa, es posible que pueda cambiar a double
.
v3.4+ Debe asegurarse de que se cumplan las siguientes condiciones previas:
- El servidor MongoDB debe ser al menos v3.4.
- MongoCSharpDriver debe ser al menos v2.4.3.
- La base de datos debe tener
featureCompatibilityVersion
establecido en'3.4'
. Si su base de datos ha sido creada por una versión anterior de MongoDB y ha actualizado su servidor a v3.4, es posible que su base de datos aún tenga una versión anterior.
Si tiene todas las propiedades configuradas, registre los siguientes serializadores para usar el decimal128
tipo:
BsonSerializer.RegisterSerializer(typeof(decimal), new DecimalSerializer(BsonType.Decimal128));
BsonSerializer.RegisterSerializer(typeof(decimal?), new NullableSerializer<decimal>(new DecimalSerializer(BsonType.Decimal128)));