MongoDB支持浮点类型吗?

MongoDB支持浮点类型吗?,mongodb,database,nosql,Mongodb,Database,Nosql,我正在将mysql数据库迁移到mongodb。但是我已经阅读了MongoDb数据类型,并且没有对浮点类型的引用,比如,float,double,decimal 在我的sql模式中,我如何拥有一些十进制类型的字段,我该怎么做,我该怎么做?MongoDB确实支持存储双精度,但由于某些原因,并非所有驱动程序都为它们提供接口 从- Mongo除了使用基本的JSON类型string、integer、boolean、double、null、array和object之外,还使用特殊的数据类型 它有, 一个值就

我正在将mysql数据库迁移到mongodb。但是我已经阅读了MongoDb数据类型,并且没有对浮点类型的引用,比如,float,double,decimal


在我的sql模式中,我如何拥有一些十进制类型的字段,我该怎么做,我该怎么做?

MongoDB确实支持存储双精度,但由于某些原因,并非所有驱动程序都为它们提供接口

从-

Mongo除了使用基本的JSON类型string、integer、boolean、double、null、array和object之外,还使用特殊的数据类型

它有,

一个值就是一个值

  • 基本类型,如字符串、整数、浮点、时间戳、二进制等
  • 文件,或
  • 一组值

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

  • int32
    -4字节(32位有符号整数)
  • int64
    -8字节(64位带符号整数)
  • double
    -8字节(64位IEEE 754浮点)
MongoDB中没有与mySQL的
decimal
类型等效的精确定点值,但您可以在Mongo中将64位浮点数字存储为
double

值得一提的是,MongoDB shell(作为JavaScript shell)无法识别整型值和浮点值之间的区别,它将所有数字视为相同的,因为JavaScript将所有数字表示为64位浮点,而不管它们的基本BSON类型如何


然而,大多数都区分整数和浮点类型。

Chris已经提供了有关浮点类型的信息,所以我将只添加有关Mongo3.4中添加的浮点类型的信息

3.4增加了对具有新十进制数据类型的十进制128格式的支持。小数128格式支持最多34位小数的数字 数字(即有效数字)和指数范围−6143至 +6144

与double数据类型不同,double数据类型只存储 十进制值,十进制数据类型存储精确值。对于 例如,十进制数字CIMAL(“9.99”)的精确值为9.99 其中,双精度9.99的近似值为 990000000000002131628


事实上,IEEE 754浮点对于重视可再现计算的人来说非常重要。令人惊讶的是,他甚至不支持这一点!