天天看點

MongoDB主鍵ObjectId(_id)生成政策

每個mongoDB中的文檔都需要一個主鍵,這個主鍵在每個集合中是唯一的,預設會帶唯一索引,主鍵為_id字段。我們同樣可以使用别的值作為 _id字段的值,但是當程式沒有提供_id時,mongo會自動生成一個 _id。

mongoDB預設的 _id為一個12位元組的16進制的字元串,這個字元串中儲存着有用的資訊,具體構成如下圖所示:

MongoDB主鍵ObjectId(_id)生成政策

最重要的時開頭的四個位元組的時間資訊,為Unix時間戳。後面三個位元組是機器ID,兩個位元組的程序ID,三個位元組的計數器。計數器會自動增長,可以保證同一程序、同一時刻内不會重複。