码迷,mamicode.com
首页 > 数据库 > 详细

mongodb中的_id的ObjectId的生成规则

时间:2019-12-25 20:12:25      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:16进制   存储空间   机器   _id   空间   ali   obj   集合   The   

MongoDB中存储的文档必须有一个"_id" 。这个键值可以是任何类型,默认是ObjectID对象。在一个集合里,每个文档都有一个唯一的“_id”,确保集合里的每个文档都能被唯一标示。

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   

原文地址:https://www.cnblogs.com/theworld/p/12098632.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!