mongodb ObjectId

2018年04月25日 10:20 | 2313次浏览

前面的几章中都涉及到了 MongoDB 的对象 id。本章将介绍 ObjectId 的结构。


ObjectId 是一个 12 字节的 BSON 类型,其结构如下:

前 4 个字节代表 UNIX 的时间戳(以秒计)。

接下来的 3 个字节代表机器标识符。

接下来的 2 个字节代表进程 id。

最后 3 个字节代表随机数。

MongoDB 使用 ObjectId 作为每一文档的 _id 字段的默认值(在创建文档时产生)。ObjectId 的复杂组合保证了 _id 字段的唯一性。


创建新的 ObjectId

使用下列代码创建新的 ObjectId:

>newObjectId = ObjectId()

上述代码返回一个唯一的 id:

ObjectId("5349b4ddd2781d08c09890f3")

如果不用 MongoDB 来生成,可以自己提供一个 12 字节的 id:

>myObjectId = ObjectId("5349b4ddd2781d08c09890f4")


创建文档时间戳

因为 _id ObjectId 默认保存 4 字节的时间戳,所以在大多数情况下不需要保存文档的创建时间。使用 getTimestamp 方法可获取文档的创建时间。

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

返回标准时期格式表示的文档创建时间:

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


将 ObjectId 转换为字符串

在某些情况下,你需要用字符串格式表示 ObjectId 值,使用如下命令可实现这一点:

>newObjectId.str

上述代码以 GUID 格式返回字符串。

5349b4ddd2781d08c09890f3



小说《我是全球混乱的源头》

感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程


上一篇:mongodb 索引限制 下一篇:mongodb mapreduce
^