MongoDb--MongoDb的_id生成規則


MongoDB的文檔必須有一個_id鍵。

目的是為了確認在集合里的每個文檔都能被唯一標識。

ObjectId 是 _id 的默認類型。

ObjectId 采用12字節的存儲空間,每個字節兩位16進制數字,是一個24位的字符串。

12位生成規則:

[0,1,2,3] [4,5,6] [7,8] [9,10,11]

時間戳 |機器碼 |PID |計數器

  • 前四字節是時間戳,可以提供秒級別的唯一性。

  • 接下來三字節是所在主機的唯一標識符,通常是機器主機名的散列值。

  • 接下來兩字節是產生ObjectId的PID,確保同一台機器上並發產生的ObjectId是唯一的。

前九字節保證了同一秒鍾不同機器的不同進程產生的ObjectId時唯一的。

  • 最后三字節是自增計數器,確保相同進程同一秒鍾產生的ObjectId是唯一的。

 

由此可得,在對數據庫數據進行排序時,可以直接更具_id來進行排序(因為生成規則前四字節是時間戳,有秒級的唯一性)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM