MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment utiliser le type décimal dans MongoDB

MongoDB ne prend pas correctement en charge les décimales jusqu'à MongoDB v3.4. Avant cette version, il stockait les décimales sous forme de chaînes pour éviter les erreurs de précision.

Avant la v3.4 Stockez les décimales sous forme de chaînes, mais cela empêche les opérations arithmétiques. Opérateurs comme $min , $avg , ... ne sera pas disponible. Si la précision n'est pas un gros problème, vous pourrez peut-être passer à double .

v3.4+ Vous devez vous assurer que les conditions préalables suivantes sont remplies :

  • Le serveur MongoDB doit être au moins v3.4.
  • MongoCSharpDriver doit être au moins v2.4.3.
  • La base de données doit avoir featureCompatibilityVersion défini sur '3.4' . Si votre base de données a été créée par une ancienne version de MongoDB et que vous avez mis à niveau votre serveur vers la v3.4, votre base de données peut toujours être sur une ancienne version.

Si toutes les propriétés sont définies, enregistrez les sérialiseurs suivants pour utiliser le decimal128 saisissez :

BsonSerializer.RegisterSerializer(typeof(decimal), new DecimalSerializer(BsonType.Decimal128));
BsonSerializer.RegisterSerializer(typeof(decimal?), new NullableSerializer<decimal>(new DecimalSerializer(BsonType.Decimal128)));