每個mongoDB中的文檔都需要一個主鍵,這個主鍵在每個集合中是唯一的,預設會帶唯一索引,主鍵為_id字段。我們同樣可以使用别的值作為 _id字段的值,但是當程式沒有提供_id時,mongo會自動生成一個 _id。
mongoDB預設的 _id為一個12位元組的16進制的字元串,這個字元串中儲存着有用的資訊,具體構成如下圖所示:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5SNzcjN0YTO1MWZ1UzNiVGOxYzX3UTO0IDMzEzLcFTMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL2M3Lc9CX6MHc0RHaiojIsJye.png)
最重要的時開頭的四個位元組的時間資訊,為Unix時間戳。後面三個位元組是機器ID,兩個位元組的程序ID,三個位元組的計數器。計數器會自動增長,可以保證同一程序、同一時刻内不會重複。