Ich migriere eine MySQL-Datenbank nach Mongodb. Aber ich habe MongoDb-Datentypen gelesen und dann gibt es keinen Hinweis auf Fließkommatypen wie Float, Double, Decimal.
Und wie habe ich einige Felder mit Dezimaltypen in meinem SQL-Schema, wie kann ich das tun oder was kann ich tun?
MongoDB speichert Daten in einem Binärformat namens BSON , das diese numerischen Datentypen unterstützt:
int32
- 4 Byte (32-Bit-Ganzzahl mit Vorzeichen)int64
- 8 Byte (64-Bit-Ganzzahl mit Vorzeichen)double
- 8 Byte (64-Bit-Gleitkommazahl nach IEEE 754)In MongoDB gibt es keine genauen Festkommaäquivalente für den decimal
-Typ von mySQL. Sie können jedoch 64-Bit-Gleitkommazahlen in Mongo als double
speichern.
Es ist erwähnenswert, dass die MongoDB-Shell - eine JavaScript-Shell - die Unterscheidung zwischen Ganzzahl- und Fließkommawerten nicht erkennt. Sie behandelt alle Zahlen gleich, da JavaScript alle Zahlen als 64-Bit-Fließkomma darstellt, unabhängig von der zugrunde liegenden BSON Art.
Die meisten MongoDB-Sprachentreiber unterscheiden jedoch zwischen Ganzzahl- und Fließkommatypen.
Chris hat bereits Informationen über Fließkommatypen bereitgestellt. Ich füge also Informationen über Decimal-Datentyp hinzu, die in Mongo 3.4 hinzugefügt wurden
3.4 fügt Unterstützung für das dezimal128-Format mit dem neuen dezimalen Datentyp hinzu. Das Format decimal128 unterstützt Zahlen mit bis zu 34 Dezimalzahlen Ziffern (d. h. signifikante Ziffern) und einen Exponentenbereich von -6143 bis +6144.
Im Gegensatz zum doppelten Datentyp, der nur eine Annäherung an .__ speichert. Dezimalwerte speichert der Dezimal-Datentyp den genauen Wert. Zum Ein Dezimalzahl-NumberDecimal-Wert ("9.99") hat beispielsweise einen genauen Wert von 9,99 wo als ein Doppelter 9.99 einen ungefähren Wert von .__ haben würde. 9.9900000000000002131628 ...
Es hat Einleitung
Ein Wert ist a
- grundtyp wie Zeichenfolge, Ganzzahl, float, Zeitstempel, Binärzeichen usw.
- ein Dokument oder
- ein Array von Werten
MongoDB unterstützt das Speichern von Doubles, aber nicht alle Treiber bieten aus irgendeinem Grund eine Schnittstelle.
Von http://www.mongodb.org/display/DOCS/Data+Types+and+Conventions -
Mongo verwendet spezielle Datentypen zusätzlich zu den grundlegenden JSON-Typen String, Integer, Boolean, double, Null, Array und Objekt.