我是Mongodb的新用户,从Mongodb官方文档链接
它显示:
返回一个新的ObjectId值。12字节的ObjectId值包括:
a 4-byte value representing the seconds since the Unix epoch, a 5-byte random value, and a 3-byte counter, starting with a random value.
在我使用mongodb的极限经验中,我认为它就是这样
时间戳+随机值+计数器
这是我的问题
1。生成的随机数小于前一次插入在一秒内生成的随机数字。数据插入的顺序和数据的ObjectID的顺序不相同?是吗
2。计数器也以随机值开始。我认为计数器的最大值是2^3*8(2^24(,但当计数器开始时有一个很大的值。会发生什么?(我的意思是,这会影响写入数据的总量吗?以及插入顺序(
提前谢谢。
对存储ObjectId值的_id字段进行排序大致如下相当于按创建时间排序。
重要
虽然ObjectId值应该随着时间的推移而增加,但事实并非如此必然是单调的。这是因为他们:
只包含一秒钟的时间分辨率,因此ObjectId值在同一秒内创建的没有保证的排序,并且由客户端生成,客户端可能具有不同的系统时钟。
此文档显示。它们在某种程度上不整齐。