it-swarm.com.de

Unterstützt MongoDB Gleitkommatypen?

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?

26
ulima69

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.

31
Chris Fulstow

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 ...

3
Salvador Dali

Es hat Einleitung

Ein Wert ist a

  • grundtyp wie Zeichenfolge, Ganzzahl, float, Zeitstempel, Binärzeichen usw.
  • ein Dokument oder
  • ein Array von Werten
1
lostyzd

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.

0
duskwuff