MongoDB ObjectId

MongoDB ObjectId

在前面的所有章节中,我们一直在使用MongoDB的Object Id。在这一章中,我们将了解ObjectId的结构。

ObjectId 是一个12字节的BSON类型,具有以下结构:

  • 前4个字节表示自UNIX纪元以来的秒数
  • 接下来的3个字节是机器标识符
  • 接下来的2个字节包含 进程ID
  • 最后的3个字节是一个随机的计数值

MongoDB使用ObjectId作为每个文档的 _id 字段的默认值,在创建任何文档时生成。ObjectId的复杂组合使得所有的 _id 字段都是唯一的。

创建新的ObjectId

要生成一个新的ObjectId,请使用以下代码:

>newObjectId = ObjectId()

上述语句返回了以下唯一生成的 id –

ObjectId("5349b4ddd2781d08c09890f3")

不要让MongoDB生成ObjectId,你也可以提供一个12字节的id –

>myObjectId = ObjectId("5349b4ddd2781d08c09890f4")

创建文档的时间戳

由于_id ObjectId默认存储4字节的时间戳,在大多数情况下,您不需要存储任何文档的创建时间。您可以使用getTimestamp方法获取文档的创建时间。

>ObjectId("5349b4ddd2781d08c09890f4").getTimestamp()

这将以ISO日期格式返回此文档的创建时间−

ISODate("2014-04-12T21:49:17Z")

将ObjectId转换为字符串

在某些情况下,您可能需要将ObjectId的值以字符串格式输出。要将ObjectId转换为字符串,使用以下代码 –

>newObjectId.str

上述代码将返回Guid的字符串格式 –

5349b4ddd2781d08c09890f3

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程