MongoDB ObjectID生成规则会影响插入顺序



我是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值在同一秒内创建的没有保证的排序,并且由客户端生成,客户端可能具有不同的系统时钟。

此文档显示。它们在某种程度上不整齐。

最新更新