MongoDB开发之 _id和ObjectId
2020-12-17 本文已影响0人
五月笙
MongoDB中存储的文档必须要有一个”_id“键。这个键的值可以是任何类型,默认是个ObjectId对象。
ObjectId
ObjectId是_id的默认类型。
ObjectId使用12字节的存储空间,是一个由24个16进制数字组成的字符串(每个字节可以存储两个16进制数字)。
MongoDB_ObjectId.png
a 4-byte timestamp value, representing the ObjectId’s creation, measured in seconds since the Unix epoch
a 5-byte random value
a 3-byte incrementing counter, initialized to a random value
时间戳
- 与随后的5个字节组合,确保秒级别的唯一性
- 大致会有根据时间的插入顺序
- 隐含了文档的创建时间,可以通过ObjectId获取
机器
主机的唯一标识,通常为主机名的散列值(hash)。
PID
生成ObjectId的进程的进程唯一标识(PID)
计数器
自动增加的计数器
自动生成_id
插入时没有创建"_id"键,系统会自动创建。通常在客户端由驱动程序完成。
能交给客户端做的事情,就不需要服务器来做。