sql >> Databáze >  >> NoSQL >> MongoDB

Jak používat desítkový typ v MongoDB

MongoDB správně nepodporuje desetinná místa až do MongoDB v3.4. Před touto verzí ukládal desetinná místa jako řetězce, aby se zabránilo chybám v přesnosti.

Před verzí 3.4 Ukládejte desetinná místa jako řetězce, ale to zabrání aritmetickým operacím. Operátoři jako $min , $avg , ... nebude k dispozici. Pokud přesnost není velký problém, možná budete moci přejít na double .

verze 3.4 a vyšší Musíte se ujistit, že jsou splněny následující předpoklady:

  • Server MongoDB by měl být alespoň v3.4.
  • MongoCSharpDriver by měl být alespoň v2.4.3.
  • Databáze by měla mít featureCompatibilityVersion nastavte na '3.4' . Pokud byla vaše databáze vytvořena starší verzí MongoDB a upgradovali jste svůj server na verzi 3.4, může být vaše databáze stále na starší verzi.

Pokud máte nastaveny všechny vlastnosti, zaregistrujte následující serializátory pro použití decimal128 typ:

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


  1. Jak nainstalovat a nakonfigurovat Redis na ElasticBeanstalk

  2. Jaký je časově nejefektivnější způsob serializace/deserializace DataTable do/z Redis?

  3. Jak mohu zastavit redis-server?

  4. Existuje způsob, jak zabránit MongoDB v přidávání množného čísla k názvům kolekcí?