it-swarm.com.ru

Поддерживает ли MongoDB типы с плавающей запятой?

Я перемещаю базу данных mysql в mongodb. Но я прочитал в типах данных MongoDb, а затем нет ссылки на типы с плавающей запятой, такие как, с плавающей запятой, двойной, десятичный.

И как у меня есть некоторые поля с десятичными типами в моей схеме sql, как я могу сделать или что я могу сделать?

26
ulima69

MongoDB хранит данные в двоичном формате с именем BSON , который поддерживает следующие числовые типы данных:

  • int32 - 4 байта (32-разрядное целое число со знаком)
  • int64 - 8 байт (64-разрядное целое число со знаком)
  • double - 8 байтов (64-битная IEEE 754 с плавающей запятой)

Точного значения с фиксированной запятой, эквивалентного типу mySQL decimal в MongoDB, нет, но вы можете хранить 64-разрядные числа с плавающей запятой в Mongo как double.

Стоит отметить, что оболочка MongoDB, являющаяся оболочкой JavaScript, не распознает различия между целочисленными значениями и значениями с плавающей запятой и обрабатывает все числа одинаково, поскольку JavaScript представляет все числа как 64-разрядные числа с плавающей запятой, независимо от их базового BSON тип.

Однако большинство языковых драйверов MongoDB различают целочисленные типы и типы с плавающей запятой.

31
Chris Fulstow

Крис уже предоставил информацию о типах с плавающей запятой, поэтому я просто добавлю информацию о десятичном типе данных , который был добавлен в Mongo 3.4

3.4 добавлена ​​поддержка формата decimal128 с новым типом данных decimal. Формат decimal128 поддерживает числа до 34 десятичных цифры (т. е. значащие цифры) и диапазон показателей от −6143 до +6144.

В отличие от типа данных double, который хранит только приближение десятичные значения, тип данных decimal хранит точное значение. За Например, десятичный NumberDecimal ("9.99") имеет точное значение 9.99 где двойное значение 9,99 будет иметь приблизительное значение +9,9900000000000002131628 ...

3
Salvador Dali

Имеет, Введение

Значение является

  • базовый тип, такой как string, integer, float, отметка времени, двоичный файл и т. д.,
  • документ или
  • массив значений
1
lostyzd

MongoDB поддерживает хранение дубликатов, но не все драйверы предоставляют интерфейс для них по некоторым причинам.

От http://www.mongodb.org/display/DOCS/Data+Types+and+Conventions -

Mongo использует специальные типы данных в дополнение к базовым типам JSON: string, integer, boolean, double, null, array и object.

0
duskwuff