MongoDB 数据类型(第 5 天)

作者 : 慕源网 本文共2348个字,预计阅读时间需要6分钟 发布时间: 2021-10-29 共371人阅读

在阅读本文之前,我强烈建议您阅读本系列的前几期:

MongoDB 以称为 BSON 的二进制编码格式存储 JSON 文档。BSON 扩展了 JSON 模型以提供额外的数据类型,并在各种语言中高效地进行编码和解码。它增加了对 JSON 不支持的数据类型的支持,例如日期和二进制。BSON 是一种二进制序列化格式,用于在 MongoDB 中存储文档和进行远程过程调用。

MongoDB 支持以下数据类型。每种数据类型都有相应的编号。$type 方法使用其对应的数字标识数据类型。

Data Type Number
Double 1
String 2
Object 3
Array 4
Binary Data 5
Undefined 6
Object Id 7
Boolean 9
Date 10
Null 11
Regular Expression 12
JavaScript 13
Symbol 14
JavaScript with scope 15
Integer 16 and 18
Timestamp 10
Min Key 255
Max Key 127

 

现在,我们将通过示例学习一些基本的数据类型。

Double

Double 数据类型存储浮点值。

例子

在上面的例子中,我们创建了一个float类型的变量(double_),在这个变量中插入了一个float类型的值,最后打印了这个变量的值。

String

String 是最常用的数据类型。它包含一串文本或任何其他类型的字符。BSON 字符串是 UTF-8。通常,在序列化和反序列化 BSON 时,每种编程语言的驱动程序都会从​​语言字符串格式转换为 UTF-8。如果字符串无效,则不会保存。这使得在 BSON 字符串中存储大多数国际字符成为可能。

例子

对象

这种数据类型存储嵌入的文档。当一个文档以键值对的形式包含另一个文档时,这种类型的文档被称为嵌入文档。

例子

Array

Array 数据类型存储数组。Array 类型可以存储多种数据类型(Integer、Double、Date、String 等)的多个值。

例子

二进制数据

Binary 数据类型存储二进制数据。

例子

在前面的示例中,BinData 是二进制字符串的 base64 表示。

ObjectId

ObjectId 数据类型存储文档的 ID。ObjectId 是:小,可能是唯一的,快速生成和排序。ObjectId 的大小为 12 字节。这 12 个字节分为以下 4 个部分。

Part Name Size(Bytes)
Time Stamp 4
Machine Id 3
Process Id 2
Counter 3

MongoDB 为每个文档使用一个 _id 字段来唯一标识它们。这个 _id 字段一个主要的东西。它不能是重复的。数据以十六进制格式存储在 _id 字段中。

例子

Boolean

这种类型存储一个布尔值。此数据类型可以设置为 true 或 false。

例子

Date

此数据类型以 UNIX 时间格式存储当前日期或时间。MongoDB 提供了各种方法来返回日期,可以是字符串,也可以是 Date 对象。

日期方法 描述
Date() 以字符串形式返回当前日期。
new Date() 使用 ISODate() 包装器返回一个 Date 对象。
ISODate() 使用 ISODate() 包装器返回一个 Date 对象。

我们可以通过创建 Date 对象并将日、月和年传递给它来指定您自己的日期时间。日期对象存储为表示毫秒数的 64 位整数。

例子

Null

Null 数据类型存储一个 Null 值。

例子

Integer

Integer 数据类型存储整数(数值)值。整数数据类型有 32 位和 64 位两种形式。整数可以是 32 位或 64 位,具体取决于服务器。

例子

Timestamp

Timestamp 数据类型存储时间戳。这对于在修改或添加文档时进行记录非常有用。时间戳值是 64 位值。

  • 前 32 位是 time_t 值(自 Unix 纪元以来的秒数)
  • 第二个 32 位是给定秒内操作的递增序数。

让我们看一个例子。

示例1

在前面的示例中,我们可以看到Timestamp 的起始值为(0,0)。插入操作后,时间戳的值为(1438791098,1)。时间戳的第一个值是当前时间戳,第二个值是操作顺序。

示例 2

MongoDB 将当前时间戳存储在 ObjectId 中,但我们可以使用 getTimestamp() 方法检索此时间戳。

首先,我们将一个文档插入到集合中,然后我们检查 Timestamp 的值。

现在,我们更新一条记录并再次检查时间戳的值。

Min/Max keys

Min/Max 键将值与最低和最高 BSON 元素进行比较。Min 和 Max 键都是内部数据类型。在比较不同BSON类型的值时,MongoDB使用以下从低到高的比较顺序:

  1. MinKey
  2. Null
  3. Numbers (ints, longs, doubles)
  4. Symbol, String
  5. Object
  6. Array
  7. BinData
  8. ObjectId
  9. Boolean
  10. Date
  11. Timestamp
  12. Regular Expression
  13. MaxKey

示例:

现在我们将另一个文档插入到集合中,然后对结果进行排序并检查输出:

正则表达式

正则表达式数据类型存储正则表达式。

例子

Undefined

Undefined 数据类型存储未定义的值。

例子

Symbol

Symbol 数据类型类似于字符串数据类型。Symbol 主要是为使用特定符号的语言保留的。

例子

JavaScript

JavaScript 数据类型存储没有作用域的 JavaScript 数据。

例子

带有作用域的 JavaScript

这种数据类型存储带有作用域选项的 JavaScript 数据。

例子

本文讲解了MongoDB的基本数据类型。在下一篇文章中,我们将了解 CRUD 操作。


慕源网 » MongoDB 数据类型(第 5 天)

常见问题FAQ

程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!

发表评论

开通VIP 享更多特权,建议使用QQ登录