40MongoDB ObjectId


在前面学习的所有章节中,都有使用了MongoDB对象标识符。 在本章中,我们将了解ObjectId的结构。

ObjectId 是具有以下结构的12字节BSON类型 –

  • 4个字节表示从unix纪元开始的秒数
  • 接下来的3个字节是机器标识符
  • 接下来的2个字节由进程ID组成
  • 最后3个字节是随机计数器值

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

>newObjectId = ObjectId()
Shell

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

ObjectId("595b99d9f6a6243715b3c312")
Shell

还可以提供一个12字节的 id 来可代替 MongoDB 生成 ObjectId –

>myObjectId = ObjectId("595b99d9f6a6243715b3c312")
Shell

创建文档的时间戳

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

>ObjectId("595b99d9f6a6243715b3c312").getTimestamp()
Shell

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

> ObjectId("595b99d9f6a6243715b3c312").getTimestamp()
ISODate("2017-07-04T13:36:25Z")
Shell

将ObjectId转换为String

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

>newObjectId.str
Shell

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

595b99d9f6a6243715b3c312
Shell

 关注右侧公众号,随时随地查看教程 MongoDB教程目录 
转载自:https://www.yiibai.com/mongodb/mongodb_objectid.html

You may also like...