📜  MongoDB 中的数据类型

📅  最后修改于: 2022-05-13 01:56:58.446000             🧑  作者: Mango

MongoDB 中的数据类型

在MongoDB中,文档存储在BSON中,BSON是JSON的二进制编码格式,使用BSON我们可以在MongoDB中进行远程过程调用。 BSON 数据格式支持各种数据类型。以下是登记的 MongoDB 数据类型:

1.字符串:这是MongoDB中最常用的数据类型来存储数据,BSON字符串是UTF-8。因此,在序列化和反序列化 BSON 时,每种编程语言的驱动程序都会从语言的字符串格式转换为 UTF-8。该字符串必须是有效的 UTF-8。

示例:在下面的示例中,我们将学生的姓名存储在学生集合中:

这里, name 字段的值的数据类型是字符串。



2.整数:在MongoDB中,整数数据类型用于存储整数值。我们可以以 32 位有符号整数和 64 位有符号整数两种形式存储整数数据类型。

示例:在以下示例中,我们将学生的年龄存储在学生集合中:

3. Double: double 数据类型用于存储浮点值。

示例:在下面的示例中,我们将学生的分数存储在学生集合中:

4. Boolean: boolean 数据类型用于存储真或假。

示例:在下面的示例中,我们将学生的最终结果存储为布尔值中的通过或失败。



5. Null: null 数据类型用于存储空值。

示例:在以下示例中,学生没有手机号码,因此号码字段包含值 null。

6. 数组:数组是一组值。它可以在其中存储相同或不同的数据类型值。在 MongoDB 中,数组是使用方括号 ([]) 创建的。

示例:在下面的示例中,我们将学生的技术技能存储为数组。

7. 对象:对象数据类型存储嵌入的文档。嵌入文档也称为嵌套文档。嵌入文档或嵌套文档是在另一个文档中包含一个文档的那些类型的文档。

示例:在下面的示例中,我们将有关一本书的所有信息存储在嵌入式文档中。



8. 对象 ID:每当我们在集合中创建一个新文档时,MongoDB 会自动为该文档创建一个唯一的对象 ID(如果文档没有它)。 MongoDB 中的每个文档都有一个 _id 字段。 Id 中存储的数据为十六进制格式,id 的长度为 12 个字节,包括:

  • 4 字节的时间戳值。
  • 5 字节用于随机值。即,机器 ID 为 3 个字节,进程 ID 为 2 个字节。
  • 计数器的 3 个字节

您也可以创建自己的 id 字段,但要确保该 id 字段的值必须是唯一的。

示例:在下面的示例中,当我们插入一个新文档时,它会为其创建一个新的唯一对象 ID。

9. 未定义:此数据类型存储未定义的值。

示例:在下面的示例中,项目的工期类型未定义。

10. 二进制数据:该数据类型用于存储二进制数据。

示例:在以下示例中,binaryValue 字段中存储的值是二进制类型。



11.日期:日期数据类型存储日期。它是一个 64 位整数,表示毫秒数。 BSON 数据类型一般支持 UTC 日期时间并且它是有符号的。如果日期数据类型的值为负,则表示 1970 年之前的日期。返回日期的方法有多种,可以作为字符串或日期对象返回。日期的一些方法:

  • Date():它以字符串格式返回当前日期。
  • new Date():返回一个日期对象。使用 ISODate() 包装器。  
  • new ISODate():它还返回一个日期对象。使用 ISODate() 包装器。

示例:在下面的示例中,我们使用了上述所有日期方法:

12. Min & Max key: Min key 比较最低BSON 元素的值,Max key 比较最高BSON 元素的值。两者都是内部数据类型。

例子:

13.符号:这种数据类型类似于字符串数据类型。 mongo shell 通常不支持它,但是如果 shell 从数据库中获取符号,那么它会将这种类型转换为字符串类型。

例子:

14.正则表达式:该数据类型用于存储正则表达式。

示例:在下面的示例中,我们将存储正则表达式 gfg:

15. JavaScript:此数据类型用于将 JavaScript 代码存储到没有作用域的文档中。

示例:在本示例中,我们在 shell 中使用 JavaScript 语法:

16. JavaScript with Scope:这种 MongoDB 数据类型存储带有作用域的 JavaScript 数据。

示例:在本示例中,我们在 shell 中使用 JavaScript 语法:

17.时间戳:在MongoDB中,该数据类型用于存储时间戳。当我们修改数据以保留记录并且此数据类型的值为 64 位时,这很有用。时间戳数据类型的值始终是唯一的。

例子: