我是Mongodb的新用户,摘自MongoDB官方文档links
它显示:
返回一个新的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),但是当计数器以非常大的值开始时。会发生什么? (我的意思是,这会影响写入数据的总量吗?以及插入顺序)
谢谢。
答案 0 :(得分:0)
最后。我找到有关这个问题的一些文件。
对存储ObjectId值的_id字段进行排序 相当于按创建时间排序。
重要
虽然ObjectId值应随时间增加,但它们不会 必然单调。这是因为他们:
仅包含一秒的时间分辨率,因此ObjectId值 同一秒内创建的订单没有保证的顺序,并且 由客户端生成,它们可能具有不同的系统时钟。
此文件显示。它们在某些情况下不规则。