sql >> Base de Datos >  >> NoSQL >> MongoDB

Cómo usar el tipo decimal en MongoDB

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)));