MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak używać typu dziesiętnego w MongoDB

MongoDB nie obsługuje poprawnie liczb dziesiętnych aż do MongoDB v3.4. Przed tą wersją przechowywał ułamki dziesiętne jako ciągi, aby uniknąć błędów dokładności.

Przed wersją 3.4 Przechowuj ułamki dziesiętne jako ciągi, ale to zapobiega wykonywaniu operacji arytmetycznych. Operatory jako $min , $avg , ... nie będzie dostępny. Jeśli precyzja nie jest wielkim problemem, możesz przełączyć się na double .

v3.4+ Musisz upewnić się, że spełnione są następujące warunki wstępne:

  • Serwer MongoDB powinien mieć wersję co najmniej 3.4.
  • MongoCSharpDriver powinien mieć wersję co najmniej 2.4.3.
  • Baza danych powinna mieć featureCompatibilityVersion ustaw na '3.4' . Jeśli Twoja baza danych została utworzona przez starszą wersję MongoDB i zaktualizowałeś serwer do wersji 3.4, Twoja baza danych może nadal znajdować się w starszej wersji.

Jeśli masz ustawione wszystkie właściwości, zarejestruj następujące serializatory, aby użyć decimal128 typ:

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak wypełnić dokument podrzędny w manguście po jego utworzeniu?

  2. MongoDB $cosh

  3. Jak zrobić stronicowanie za pomocą zapytań zakresowych w MongoDB?

  4. MongoDB $concat

  5. Jak wymusić klucze obce w bazach NoSql (MongoDB)?