sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man använder decimaltyp i MongoDB

MongoDB stöder inte korrekt decimaler förrän MongoDB v3.4. Före denna version lagrade den decimaler som strängar för att undvika precisionsfel.

Pre v3.4 Lagra decimaler som strängar, men detta förhindrar aritmetiska operationer. Operatörer som $min , $avg , ... kommer inte att vara tillgänglig. Om precision inte är en stor sak kan du kanske byta till double .

v3.4+ Du måste se till att följande förutsättningar är sanna:

  • MongoDB-servern bör vara minst v3.4.
  • MongoCSharpDriver bör vara minst v2.4.3.
  • Databasen bör ha featureCompatibilityVersion inställd på '3.4' . Om din databas har skapats av en äldre MongoDB-version och du har uppgraderat din server till v3.4 kan din databas fortfarande vara på en äldre version.

Om du har alla egenskaper inställda registrerar du följande serialiserare för att använda decimal128 typ:

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


  1. Hur gör man ett frågedatum i mongodb med pymongo?

  2. Redis:Det gick inte att öppna .rdb för att spara:Tillstånd nekad

  3. MongoDB är inte auktoriserad för fråga - kod 13

  4. mongodb 3.4.3 Tillstånd nekad widtiger_kv_engine.cpp 267 fel med ubuntu 16