MongoDb--MongoDb的_id生成规则


MongoDB的文档必须有一个_id键。

目的是为了确认在集合里的每个文档都能被唯一标识。

ObjectId 是 _id 的默认类型。

ObjectId 采用12字节的存储空间,每个字节两位16进制数字,是一个24位的字符串。

12位生成规则:

[0,1,2,3] [4,5,6] [7,8] [9,10,11]

时间戳 |机器码 |PID |计数器

  • 前四字节是时间戳,可以提供秒级别的唯一性。

  • 接下来三字节是所在主机的唯一标识符,通常是机器主机名的散列值。

  • 接下来两字节是产生ObjectId的PID,确保同一台机器上并发产生的ObjectId是唯一的。

前九字节保证了同一秒钟不同机器的不同进程产生的ObjectId时唯一的。

  • 最后三字节是自增计数器,确保相同进程同一秒钟产生的ObjectId是唯一的。

 

由此可得,在对数据库数据进行排序时,可以直接更具_id来进行排序(因为生成规则前四字节是时间戳,有秒级的唯一性)

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM