MongoDB和MySQL数据类型比较

4

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

请给我提供MySQL和MongoDB数据类型的比较。

1个回答

5

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

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

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

实际上并不存在直接的翻译表,但我会尝试为您挖掘出基本的翻译。

注意:由于某些未知原因,MongoDB文档实际上已经删除了可用于您的完整数据类型列表,因此我不得不在词汇表中寻找这个列表:http://docs.mongodb.org/manual/reference/glossary/#term-bson-types

当您查看该列表时,您将注意到的第一件事是,有许多数据类型在MySQL中原生不存在,例如“Object”或“Array”,但是:

  • Binary 在 MySQL 中有时被称为 BLOB,通常通过 {d: new BinData($b)} 访问。
  • ObjectId 是 MongoDB 的一种特殊数据类型,用于 MongoDB 的主键类型。
  • String 是 MySQL 中的 VARCHARTEXTLONGTEXT 等所有字符串类型的组合,通常使用方式为 {d: 'lalalaalala'}
  • Boolean 通常在 MySQL 中被称为 BOOLTINYINT(1),基本上像这样使用:{d:true}
  • Date 在 MySQL 中被称为 TIMESTAMPDATEDATETIMEYEAR 等所有日期类型,并且通常使用方式为 {d: new ISODate()}
  • 32 位整数有时在 MYSQL 和其他小整数数据类型中被称为 TINYINT(11)INTEGERINTSMALLINT 等,并且通常使用方式为 {d:5}
  • 64 位整数有时在 MySQL 中被称为 MEDIUMINTBIGINT,并且通常使用方式为 {d:new NumberLong("4")}
  • NULL 在 MySQL 中是 NULL,通常使用方式为 {d:null}
  • Timestamp 不是你公开使用的内容,所以我不会谈论它,它不是它听起来的那样。
  • Double 相关的是 MySQL 中的 DECIMALFLOAT,可以像这样使用:{d:0.5},但由于精度问题,建议将浮点数和双精度数存储为整数。

我相信这涵盖了你需要了解的主要内容。

内容很多,希望对你有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接