首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MongoDB的ObjectId组成

ObjectId的官方规范 1)Time 时间戳。将刚才生成的objectid的前4位进行提取“5e4fa350”,然后按照十六进制转为十进制,变为“1582277456”,这个数字就是一个时间戳。...上面的Machine是为了确保在不同机器产生的objectId不冲突,而pid就是为了在同一台机器不同的mongodb进程产生了objectId不冲突,接下来的“af71”两位就是产生objectId的进程标识符...前面的九个字节是保证了一秒内不同机器不同进程生成objectId不冲突,这后面的三个字节“5d6f62”是一个自动增加的计数器,用来确保在同一秒内产生的objectId也不会发现冲突,允许256的3次方等于...总的来看,objectId的前4个十六进制字符是时间戳,记录了文档创建的时间;接下来3个十六进制字符代表了所在主机的唯一标识符,确定了不同主机间产生不同的objectId;后2个是进程id,决定了在同一台机器下...,不同mongodb进程产生不同的objectId;最后通过3个是自增计数器,确保同一秒内产生objectId的唯一性。

1.1K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    从根上理解MongoDB的ObjectId生成原理!

    官网中对 ObjectId 的规范有以下描述: MongoDB中的ObjectId规范 上面的这个图中,有一个重点信息。...上面的 Machine 是为了确保在不同机器产生的 ObjectId 不冲突,而 pid 就是为了在同一台机器不同的 mongodb 进程中产生的 ObjectId 不冲突。...前面的九个字节是保证了一秒内不同机器不同进程生成 ObjectId 不冲突,最后面的这三个字节9fa835是一个自动增加的计数器,用来确保在同一秒内产生的 ObjectId 也不会发生冲突,允许 256...或者让客户端产生 ObjectId(客户端生成 ObjectId 我们后面再单独来讨论)。...id,决定了在同一台机器下,不同 mongodb 进程产生不同的 ObjectId;最后通过 3 个字节的自增计数器,确保同一秒内产生 ObjectId 的唯一性。

    1.2K20
    领券