我正在将mysql数据库迁移到mongodb。但我已经阅读了MongoDb数据类型,然后没有引用浮点类型,如float,double,decimal。
我在sql架构中如何使用十进制类型的字段,我该怎么做或者我该怎么办?
答案 0 :(得分:31)
MongoDB以称为BSON的二进制格式存储数据,该格式支持以下数字数据类型:
int32
- 4个字节(32位有符号整数)int64
- 8个字节(64位有符号整数)double
- 8个字节(64位IEEE 754浮点) MongoDB中没有与mySQL的decimal
类型相当的精确值定点,但您可以将Mongo中的64位浮点数存储为double
。
值得一提的是,作为JavaScript shell的MongoDB shell无法识别整数和浮点值之间的区别,它将所有数字视为相同,因为JavaScript将所有数字表示为64位浮点,无论它们的基础BSON类型。
然而,大多数MongoDB language drivers区分了整数和浮点类型。
答案 1 :(得分:4)
Chris已经提供了有关浮点类型的信息,因此我将添加有关Mongo 3.4中添加的Decimal data type的信息
3.4增加了对decimal128格式的支持,使用新的十进制数据类型。 decimal128格式支持最多34位小数的数字 数字(即有效数字)和指数范围-6143到 6144。
与双数据类型不同,后者仅存储近似值 十进制值,十进制数据类型存储确切的值。对于 例如,十进制NumberDecimal(“9.99”)的精确值为9.99 其中,双9.99的近似值为 9.9900000000000002131628 ...
答案 2 :(得分:1)
它有,Introduction
值是
- 基本类型,如字符串,整数,浮动,时间戳,二进制等,
- 文件或
- 一组值
答案 3 :(得分:0)
MongoDB确实支持存储双打,但并非所有驱动程序都出于某种原因为它们提供了接口。
来自http://www.mongodb.org/display/DOCS/Data+Types+and+Conventions -
Mongo除了基本的JSON类型的字符串,整数,布尔,双,null,数组和对象之外,还使用特殊的数据类型。