MongoDB对_id使用哪种算法

乌策拜尔

MongoDB对每个文档使用哪种算法_id

我找不到有关它的任何文档。是某种uuid吗?

沙希德·侯赛因

ObjectId是“ _id”的默认类型,它使用12个字节的存储空间,这为它们提供了一个字符串表示形式,该字符串表示形式为24个十六进制数字:每个字节2个数字。这是在客户端生成的。如果快速连续创建多个新的ObjectId,则可以看到每次仅更改最后几位。此外,ObjectId中间的几位数字也会更改(如果将创建的内容间隔几秒钟)。这是因为创建ObjectId的方式。ObjectId的12个字节生成如下:

0|1|2|3     4|5|6    7|8|   9|10|11 

Timestamp  machine   PID   Increment

ObjectId的前四个字节是以秒为单位的时间戳。这提供了几个有用的属性:时间戳与接下来的5个字节结合使用时,可以在一秒的粒度内提供唯一性。因为时间戳在前,所以这意味着ObjectId将按插入顺序大致排序(这不是很强保证)。在这四个字节中,存在每个文档创建时间的隐式时间戳。

ObjectId的后三个字节是在其上生成对象的机器的唯一标识符。这通常是计算机主机名的哈希。通过包含这些字节,可以确保不同的机器不会生成冲突的ObjectId。

为了在单个机器上同时生成ObjectId的不同进程之间提供唯一性,接下来的两个字节取自于生成ObjectId的进程的进程标识符(PID)。ObjectId的前九个字节保证了它在一秒钟内在机器和进程中的唯一性。最后三个字节只是一个递增计数器,该计数器在单个过程中在一秒钟内负责唯一性。

这样一来,每个进程最多可以生成256 ^ 3(16,777,216)个唯一的ObjectId。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

qsort()使用哪种排序算法?

来自分类Dev

内核使用哪种调度算法?

来自分类Dev

@Password公式正在使用哪种哈希算法?

来自分类Dev

.NET中使用哪种货币舍入算法?

来自分类Dev

python实际使用哪种GC算法?

来自分类Dev

SSL使用哪种对称密钥算法?

来自分类Dev

“加密主目录”使用哪种算法?

来自分类Dev

决定使用哪种机器学习算法

来自分类Dev

Hadoop HDFS 使用哪种复制算法

来自分类Dev

OpenCV cvtColor()使用哪种灰度转换算法?

来自分类Dev

javascript关联数组使用哪种哈希函数/算法?

来自分类Dev

我应该使用哪种算法对学生进行排序?

来自分类Dev

Tesseract OCR使用哪种阈值(二值化)算法?

来自分类Dev

Hive的内置HASH()函数使用哪种哈希算法

来自分类Dev

在C#中使用哪种算法参数:静态,常量,只读?

来自分类Dev

使用哪种算法填充树形结构中的数据

来自分类Dev

RNGCryptoServiceProvider使用哪种伪随机数生成算法?

来自分类Dev

CPU /编程语言使用哪种幂运算算法?

来自分类Dev

Microsoft故障转移群集使用哪种选举算法?

来自分类Dev

在以下情况下应使用哪种排序算法?

来自分类Dev

Windows 10使用哪种哈希算法存储密码?

来自分类Dev

哪种算法在Stream接口中使用排序方法

来自分类Dev

keycloak如何确定使用哪种签名算法?

来自分类Dev

OpenCV cvtColor()使用哪种灰度转换算法?

来自分类Dev

使用哪种算法来确定坐标是否在特定区域中?

来自分类Dev

OS X中的TCP堆栈使用哪种拥塞控制算法?

来自分类Dev

Hive的内置HASH()函数使用哪种哈希算法

来自分类Dev

RNGCryptoServiceProvider使用哪种伪随机数生成算法?

来自分类Dev

我应该使用哪种算法对学生进行排序?

Related 相关文章

  1. 1

    qsort()使用哪种排序算法?

  2. 2

    内核使用哪种调度算法?

  3. 3

    @Password公式正在使用哪种哈希算法?

  4. 4

    .NET中使用哪种货币舍入算法?

  5. 5

    python实际使用哪种GC算法?

  6. 6

    SSL使用哪种对称密钥算法?

  7. 7

    “加密主目录”使用哪种算法?

  8. 8

    决定使用哪种机器学习算法

  9. 9

    Hadoop HDFS 使用哪种复制算法

  10. 10

    OpenCV cvtColor()使用哪种灰度转换算法?

  11. 11

    javascript关联数组使用哪种哈希函数/算法?

  12. 12

    我应该使用哪种算法对学生进行排序?

  13. 13

    Tesseract OCR使用哪种阈值(二值化)算法?

  14. 14

    Hive的内置HASH()函数使用哪种哈希算法

  15. 15

    在C#中使用哪种算法参数:静态,常量,只读?

  16. 16

    使用哪种算法填充树形结构中的数据

  17. 17

    RNGCryptoServiceProvider使用哪种伪随机数生成算法?

  18. 18

    CPU /编程语言使用哪种幂运算算法?

  19. 19

    Microsoft故障转移群集使用哪种选举算法?

  20. 20

    在以下情况下应使用哪种排序算法?

  21. 21

    Windows 10使用哪种哈希算法存储密码?

  22. 22

    哪种算法在Stream接口中使用排序方法

  23. 23

    keycloak如何确定使用哪种签名算法?

  24. 24

    OpenCV cvtColor()使用哪种灰度转换算法?

  25. 25

    使用哪种算法来确定坐标是否在特定区域中?

  26. 26

    OS X中的TCP堆栈使用哪种拥塞控制算法?

  27. 27

    Hive的内置HASH()函数使用哪种哈希算法

  28. 28

    RNGCryptoServiceProvider使用哪种伪随机数生成算法?

  29. 29

    我应该使用哪种算法对学生进行排序?

热门标签

归档