MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

So verwenden Sie den Dezimaltyp in MongoDB

MongoDB unterstützt Dezimalzahlen nicht richtig bis MongoDB v3.4. Vor dieser Version wurden Dezimalzahlen als Zeichenketten gespeichert, um Genauigkeitsfehler zu vermeiden.

Vor v3.4 Speichern Sie Dezimalzahlen als Zeichenfolgen, dies verhindert jedoch arithmetische Operationen. Operatoren als $min , $avg , ... wird nicht verfügbar sein. Wenn Präzision keine große Rolle spielt, können Sie möglicherweise auf double umstellen .

v3.4+ Sie müssen sicherstellen, dass die folgenden Voraussetzungen erfüllt sind:

  • MongoDB-Server sollte mindestens v3.4 sein.
  • MongoCSharpDriver sollte mindestens v2.4.3 sein.
  • Datenbank sollte featureCompatibilityVersion haben auf '3.4' gesetzt . Wenn Ihre Datenbank mit einer älteren MongoDB-Version erstellt wurde und Sie Ihren Server auf v3.4 aktualisiert haben, befindet sich Ihre Datenbank möglicherweise noch in einer älteren Version.

Wenn Sie alle Eigenschaften festgelegt haben, registrieren Sie die folgenden Serialisierer, um decimal128 zu verwenden Typ:

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