mongodb中的_id的ObjectId的生成規則


MongoDB中存儲的文檔必須有一個"_id" 。這個鍵值可以是任何類型,默認是ObjectID對象。在一個集合里,每個文檔都有一個唯一的“_id”,確保集合里的每個文檔都能被唯一標示。

 

ObjectID使用12字節的存儲空間,是一個由24個16進制數字組成的字符串。

ObjectId的12個字節按照如下方式生成

時間戳:

  時間戳,前四個字節是從標准紀元開始的時間戳,單位是秒。可提供秒級別的唯一性。

  由於時間戳在前,這意味着ObjectId大致按照插入的順序排列。

  這四個字節也隱含了文檔的創建時間。

機器:

  主機的唯一標識符。通常是機器主機的散列值(hash)。這樣可以確保不同的機器生成不同的ObjectId  

PID:

  為了確保在同一台機器上並發的多個進程產生的ObjectID是唯一的,接下來者兩個字節產生來自於進程的標識符

計數器:

  最后三個字節是一個自動增加的計數器,確保相同的進程同一秒產生的ObjectId也是不一樣的一秒鍾最多允許每個進程擁有2563個不同的ObjectId

 


免責聲明!

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



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