ObjectID使用12字节的存储空间,是一个由24个16进制数字组成的字符串。
ObjectId的12个字节按照如下方式生成
| 时间戳(1571234567123) | 机器码(主机标识符) | PID(进程id) | 计数器 |
|---|---|---|---|
| 0,1,2,3 | 4,5,6 | 7,8 | 9,10,11 |
- 前四位是时间戳,可以提供秒级别的唯一性。
- 接下来三位是所在主机的唯一标识符,通常是机器主机名的散列值。
- 接下来两位是产生 ObjectId 的 PID,确保同一台机器上并发产生的 ObjectId 是唯一的。
- 前九位保证了同一秒钟不同机器的不同进程产生的 ObjectId 时唯一的。
- 最后三位是自增计数器,确保相同进程同一秒钟产生的 ObjectId 是唯一的。
mongodb中的_id的ObjectId的生成规则
标签:16进制 存储空间 机器 _id 空间 ali obj 集合 The