我看到MySQL中的一些数据类型在MongoDB中是没有的,是这样吗?
请给我比较一下 MySQL 和 MongoDB 中的数据类型。
MySQL 的数据类型比 MongoDB 多很多,主要是因为它支持的数据类型更多。
首先要理解的是,所有不是标准字符串或整数的“数据类型”通常都需要包装器,或者更确切地说是对象封装。
一个很好的例子是日期,在 MySQL 中你有DATETIME
, DATE
, YEAR
,TIMESTAMP
等等,而 MongoDB 只有ISODate()
.
实际上不存在直接的翻译表,但是我会尝试为您挖掘出基本的翻译表。
注意:由于某些未知原因,MongoDB 文档实际上已经删除了您可用的数据类型的完整列表,所以我不得不搜索一下隐藏在词汇表中的这个列表:http: //docs.mongodb.org/manual/reference /glossary/#term-bson-types
在查看该列表时,您会注意到的第一件事是,有很多数据类型在 MySQL 本机中不存在,例如“对象”或“数组”:
Binary
有时BLOB
在 MySQL 中调用,通常通过以下方式访问{d: new BinData($b)}
ObjectId
是 MongoDB 用于主键类型的特殊 MongoDB 数据类型String
is VARCHAR
, TEXT
,LONGTEXT
和所有其他字符串类型在 MySQL 中组合在一起,通常用作{d: 'lalalaalala'}
.Boolean
在 MySQL中通常被称为BOOL
or TINYINT(1)
,它的基本用法如下:{d:true}
.Date
在 MySQL中被称为TIMESTAMP
, DATE
, DATETIME
,YEAR
和所有其他日期类型,使用如下{d: new ISODate()}
TINYINT(11)
、INTEGER
、等,其用法INT
如下SMALLINT
{d:5}
MEDIUMINT
andBIGINT
{d:new NumberLong("4")}
NULL
NULL
在 MySQL中运行良好,使用起来像{d:null}
Timestamp
不是你会公开使用的,所以我不会谈论它,它不是听起来的样子。Double
与MySQL 相关DECIMAL
并且FLOAT
可以使用,{d:0.5}
但是由于精度,我建议您将浮点数和双精度数存储为整数。我相信这涵盖了您需要了解的主要内容。
有很多,所以希望它有所帮助。