MongoDB是否支持浮点类型?

uli*_*a69 28 database mongodb nosql

我正在将mysql数据库迁移到mongodb.但我已经阅读了MongoDb数据类型,然后没有引用浮点类型,如float,double,decimal.

我如何在我的sql架构中有一些带小数类型的字段,我该怎么做或者我该怎么办?

Chr*_*tow 33

MongoDB以称为BSON的二进制格式存储数据,该格式支持以下数字数据类型:

  • int32 - 4个字节(32位有符号整数)
  • int64 - 8个字节(64位有符号整数)
  • double - 8个字节(64位IEEE 754浮点)

decimalMongoDB中没有与mySQL 类型相当的精确值定点,但您可以将Mongo中的64位浮点数存储为double.

值得一提的是,作为JavaScript shell的MongoDB shell无法识别整数和浮点值之间的区别,它将所有数字视为相同,因为JavaScript将所有数字表示为64位浮点,无论其基础BSON如何类型.

但是,大多数MongoDB语言驱动程序都区分整数和浮点类型.

  • 事实上它是IEEE 754浮点对于重视可重复计算的人来说非常重要.令人惊讶的是,即使[Matlab](http://www.mathworks.com/support/solutions/en/data/1-79FEJH/index.html?product=ML&solution=1-79FEJH)也不支持此功能! (2认同)

Sal*_*ali 7

Chris 已经提供了有关浮点类型的信息,因此我将添加有关在 Mongo 3.4 中添加的Decimal 数据类型的信息

3.4 使用新的十进制数据类型添加了对 decimal128 格式的支持。decimal128 格式支持最多 34 位十进制数字(即有效数字)和指数范围为 ?6143 到 +6144 的数字。

与仅存储十进制值的近似值的双精度数据类型不同,十进制数据类型存储精确值。例如,十进制 NumberDecimal("9.99") 的精确值为 9.99,而双精度 9.99 的近似值为 9.9900000000000002131628...