_id 是mongoDB中唯一的主鍵,MongoDB中存儲的文檔必須有一個"_id"鍵, 無論用戶是否設置都將自動生成,其類型為ObjectId. 在一個集合里面,每個文檔都有唯一的"_id"值,來確保集合里面每個文檔都能被唯一標識。
ObjectId 是一個12字節 BSON 類型數據,有以下格式:
前4個字節表示時間戳
接下來的3個字節是機器標識碼
緊接的兩個字節由進程id組成(PID)
最后三個字節是隨機數。
0|1|2|3 | 4|5|6 | 7|8 | 9|10|11
時間戳 | 機器 | PID | 計數器
在使用MongoTemplate 保存數據的時候,如果數據源中數據的_id已經存在,則會更改原有的數據,如果不存在則進行新增操作。
如果自己設置數據鏈接池,則如果數據中的_id在數據庫中已存在,則不能進行保存操作,否則會產生錯誤。