代码之家  ›  专栏  ›  技术社区  ›  HbnKing

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

  •  0
  • HbnKing  · 技术社区  · 6 年前

    我是一个新的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的有限经验中,我认为它就是这样

    这是我的问题
    一。生成的随机数小于前一次插入在一秒钟内生成的随机数。数据插入的顺序和数据的ObjectID的顺序不一样?它是?
    2。计数器也以随机值开始。我认为计数器的最大值是2^3*8(2^24),但当计数器从一个很大的值开始时。会发生什么?(我的意思是这会影响书面数据的总量和插入顺序吗)

    提前谢谢。

    1 回复  |  直到 6 年前
        1
  •  0
  •   HbnKing    6 年前

    最后,我找到了一些关于这个问题的文件。

    相当于按创建时间排序。

    虽然ObjectId值应该随着时间的推移而增加,但它们不是

    只包含一秒的时间分辨率,所以ObjectId值 在同一秒内创建的没有保证的顺序,并且 由客户端生成,客户端可能具有不同的系统时钟。