MongoDB是否支持浮点类型?

时间:2011-10-07 03:18:05

标签: mongodb database nosql

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

我在sql架构中如何使用十进制类型的字段,我该怎么做或者我该怎么办?

4 个答案:

答案 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,数组和对象之外,还使用特殊的数据类型。