Mongodb和Mysql数据类型比较

时间:2013-03-26 16:52:46

标签: mysql mongodb

我看到MySQL中的一些数据类型不在MongoDB中,是这样吗?

请给我比较一下MySQL和MongoDB中的数据类型。

1 个答案:

答案 0 :(得分:5)

MySQL拥有比MongoDB更多的数据类型,主要是因为它支持更多的数据类型。

首先要理解的是,所有不是标准字符串或整数的“数据类型”通常都需要包装器,或者更确切地说是对象封装。

这里的一个很好的例子是日期,在MySQL中你有DATETIMEDATEYEARTIMESTAMP等等,而MongoDB只有ISODate()

实际上并没有直接的翻译表,但我会尝试为你挖掘出基本的翻译表。

注意:由于某些未知原因,MongoDB文档实际上已经取出了您可用的完整数据类型列表,因此我不得不搜索一下隐藏在词汇表中的这个列表:{{3 }}

在查看该列表时,您会注意到的第一件事是MySQL本身不存在许多数据类型,例如“对象”或“数组”,但是:

  • Binary有时在MySQL中称为BLOB,通常可通过{d: new BinData($b)}
  • 访问
  • ObjectId是MongoDB用于主键类型的特殊MongoDB数据类型
  • StringVARCHARTEXTLONGTEXT以及所有其他字符串类型在MySQL中的组合,通常用作{d: 'lalalaalala'}
  • Boolean在MySQL中通常称为BOOLTINYINT(1),它基本上用作:{d:true}
  • Date被称为TIMESTAMPDATEDATETIMEYEAR以及MySQL中的所有其他日期类型,其使用方式与{{1}相同}
  • MYSQL和其他小整数数据类型中的32位整数有时称为{d: new ISODate()}TINYINT(11)INTEGERINT等,其使用方式与{{1 }}
  • 在MySQL中,64位整数有时称为SMALLINT{d:5},用作MEDIUMINT
  • BIGINT在MySQL中很好{d:new NumberLong("4")},用作NULL
  • NULL不是你公开使用的,所以我不会谈论它,听起来不是这样。
  • {d:null}与MySQL中的TimestampDouble相关,可以像DECIMAL一样使用,但由于精度的原因,我建议您将浮点数和双精度存储为整数。

我认为这涵盖了您需要了解的主要内容。

有点希望它有所帮助。