mongodb自动创建Id

本文深入探讨了MongoDB中ObjectId的生成机制与组成部分,包括时间戳、机器码、PID及计数器,揭示了ObjectId如何确保在全球范围内生成的文档ID的唯一性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建MongoDB文档时,如果没有赋值ID,系统会自动帮你创建一个,通常会在客户端由驱动程序完成。

ObjectId使用12字节的存储空间,每个字节两位十六进制数字,是一个24位的字符串。其含义分别代表时间戳(4字节)、机器码(3字节)、PID(2字节)、计数器(3字节)。时间戳是文档创建时的时间,只是从十进制转化成了十六进制。机器码是生成文档主机的ID,为了区分多主机而生成的。PID则是区分同主机下不同mongoDB进程产生的,同样防止冲突。前面的9个字节是保证了一秒内不同机器不同进程生成ObjectId不冲突,最后的3个字节是一个自动增加的计数器,用来确保在同一秒内产生的ObjectId也不会冲突,允许256的3次方等于16777216条记录的唯一性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值