MongoDB数据类型汇总
下表中列举了 MongoDB 中常用的几种数据类型:
下面简单介绍一下其中几个比较重要的类型:
在一个 MongoDB 实例中,时间戳是唯一的,而且主要在 MongoDB 内部使用,在应用开发中,您可以使用 Date 类型来定义时间日期。
数据类型 | 描述 |
---|---|
String | 字符串类型,是最常用的数据类型,不过在 MongoDB 中,只有 UTF-8 编码的字符串才是合法的 |
Integer | 整型,用于存储数值。根据您使用服务器的不同,整型可以分为 32 位或 64 位两种 |
Boolean | 布尔型,用于存储布尔类型的值(true/false) |
Double | 双精度浮点型,用于存储浮点型(小数)数据 |
Min/Max keys | 将一个值与 BSON 元素的最低值和最高值相对比 |
Array | 数组类型,用于将数组、列表或多个值存储在一个键中 |
Timestamp | 时间戳,记录文档修改或添加的具体时间 |
Object | 用于内嵌文档 |
Null | 用于创建空值 |
Symbol | 符号,该数据类型于字符串类型类似,不同的是,它一般用于采用特殊符号类型的语言 |
Date | 日期时间,用 UNIX 时间格式来存储当前日期或时间,您可以创建 Date 对象并将 date、month、year 的值传递给 Date 对象来指定自己的日期时间 |
Object ID | 对象 ID,用于创建文档的 ID |
Binary Data | 二进制数据,用于存储二进制数据 |
Code | 代码类型,用于在文档中存储 JavaScript 代码 |
Regular expression | 正则表达式类型,用于存储正则表达式 |
下面简单介绍一下其中几个比较重要的类型:
Object ID
Object ID 类似于关系型数据库中的主键 ID,在 MongoDB 中 Object ID 由 12 字节的字符组成,其中:- 前 4 个字节表示当前的 Unix 时间戳;
- 之后的 3 个字节是当前设备的机器标识码;
- 再之后的 2 个字节是 MongoDB 服务器的进程 id;
- 最后 3 个字节为计数器,计数器的起始值随机获得。
601e2b6b aa203c c89f 2d31aa ↑ ↑ ↑ ↑ 时间戳 机器码 进程id 计数器
Timestamps
Timestamps(时间戳)类型用来在 MongoDB 的内部使用,与 Date 类型不同,Timestamps 由一个 64 位的值构成,其中:- 前 32 位是一个 Unix 时间戳(由 Unix 纪元(1970.1.1)开始到现在经过的秒数);
- 后 32 位是一秒内的操作序数。
在一个 MongoDB 实例中,时间戳是唯一的,而且主要在 MongoDB 内部使用,在应用开发中,您可以使用 Date 类型来定义时间日期。
Date
Date 类型是一个 64 位的对象,其中存放了从 Unix 纪元(1970.1.1)开始到现在经历的毫秒数,Date 类型是有符号的,负值则表示 1970.1.1 之前的时间。
> var mydate = new Date()
> mydate
ISODate("2021-02-06T08:50:37.024Z")
> typeof mydate
object