MongoDB 的 是一个 12 字节(12-byte) 的 BSON 类型数据,通常在客户端显示为 24 个十六进制字符的字符串。 它的设计目标是在分布式系统中生成全局唯一的 ID,且无需中心化的服务器协调(即可以在客户端生成)。 以下是关于其组成部分和唯一性保证机制的详细解释。 --- 一、 ObjectId 的组成部分 (Current Specification) 自 MongoDB 3.4 版本起,ObjectId 的生成规范进行了简化和改进。目前的 12 字节结构如下: 1. 前 4 个字节:时间戳 (Timestamp) 含义:表示自 Unix 纪元(1970-01-01)以来的秒数。 作用: 提供了时间维度的唯一性。 使得 ObjectId 默认大致按时间有序(这对索引性能和排序非常有帮助)。 你可以直接从 ObjectId 中提取出创建时间。 2. 中间 5 个字节:随机值 (Random Value) 含义:这 5 个字节是每个进程生成一次的随机值。 历史变迁:在旧版本的规范中,这部分由“3字节机器标识符 + 2字节进程ID (PID)”组成。现在的规范将其合...