MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como usar o tipo decimal no MongoDB


O MongoDB não oferece suporte adequado a decimais até o MongoDB v3.4. Antes desta versão, armazenava decimais como strings para evitar erros de precisão.

Antes da v3.4 Armazene decimais como strings, mas isso evita operações aritméticas. Operadores como $min , $avg , ... não estará disponível. Se a precisão não for grande coisa, você poderá mudar para double .

v3.4+ Você precisa ter certeza de que as seguintes pré-condições são verdadeiras:
  • O servidor MongoDB deve ser pelo menos v3.4.
  • MongoCSharpDriver deve ser pelo menos v2.4.3.
  • O banco de dados deve ter featureCompatibilityVersion definido como '3.4' . Se seu banco de dados foi criado por uma versão mais antiga do MongoDB e você atualizou seu servidor para a v3.4, seu banco de dados ainda pode estar em uma versão mais antiga.

Se você tiver todas as propriedades definidas, registre os seguintes serializadores para usar o decimal128 tipo:
BsonSerializer.RegisterSerializer(typeof(decimal), new DecimalSerializer(BsonType.Decimal128));
BsonSerializer.RegisterSerializer(typeof(decimal?), new NullableSerializer<decimal>(new DecimalSerializer(BsonType.Decimal128)));