MongoDB 中的 ObjectId 的组成,ObjectId 是一个 12 字节的 BSON 类型,具有以下结构:
前 4 个字节表示时间戳;
接下来的 3 个字节表示机器标识符;
紧接着的 2 个字节由进程 id(PID)组成;
最后 3 个字节是一个随机计数器的值。
生成新的ObjectId
>newObjectId = ObjectId()
<ObjectId("63ac08b02574a3d57b1902ad")
也可以指定一个12字节的ID
>myObjectId = ObjectId("6040966d8bafb296d166fe50")
<ObjectId("6040966d8bafb296d166fe50")
创建文档的时间戳
由于 ObjectId(_id)中默认存储了 4 个字节的时间戳,因此在大多数情况下,您再不需要单独存储任何文档的创建时间,只要使用 getTimestamp() 方法就可以获取文档的创建时间,getTimestamp() 方法可以使用 ISO 格式返回 ObjectId 中包含的时间,如下所示:
newObjectId.getTimestamp()
2022-12-28T09:13:20.000Z
将 ObjectId 转换为 String
newObjectId.toString()
'63ac08b02574a3d57b1902ad'