MongoDB – 对象 ID
MongoDB – 对象 ID
在之前的所有章节中,我们一直在使用 MongoDB 对象 ID。在本章中,我们将了解 ObjectId 的结构。
一个的ObjectId是具有以下结构的12字节的BSON型-
- 前 4 个字节代表自 unix 纪元以来的秒数
- 接下来的 3 个字节是机器标识符
- 接下来的 2 个字节由进程 ID 组成
- 最后 3 个字节是一个随机计数器值
MongoDB 使用 ObjectIds 作为每个文档的_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