Поддерживает ли MongoDB типы с плавающей запятой? - PullRequest
27 голосов
/ 07 октября 2011

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

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

Ответы [ 4 ]

31 голосов
/ 07 октября 2011

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

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

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

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

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

4 голосов
/ 06 декабря 2016

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

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

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

1 голос
/ 07 октября 2011

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

Значение равно

  • базовый тип, такой как string, integer, float , отметка времени, двоичный файл и т. Д.,
  • документ или
  • массив значений
0 голосов
/ 07 октября 2011

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...