2017-09-29 54 views
0

我想知道主鍵是否在所有數據庫中都是唯一的,我的意思是在另一個集合中沒有其他的ID具有相同的值。mongoDB中的主鍵在所有數據庫中都是唯一的嗎?

+0

與GUID一樣,它們**可能在生成時是唯一的。生成重複ID的機會非常小。請參閱[文檔](https://docs.mongodb.com/manual/reference/bson-types/#objectid)。 –

+0

由於您可以手動指定'_id':no。 – deceze

+0

[是Mongodb ObjectID在文檔間唯一嗎?](https://stackoverflow.com/questions/29958919/is-mongodb-objectid-unique-between-documents) –

回答

0

不,沒有! 即使當的ObjectId被構造出來的

時間戳(自紀元秒) 機器標識符 進程id 和啓動用的隨機值每個第二

,因爲你可以創建一個3字節計數器手動有機會!

我發現這個回覆rathher好!和我所引用的Markus W Mahlberg: 注意:即使是像MD5或SHA256(在較小程度上)的散列算法也有輕微的碰撞機會。但是如果有一個獨特的約束,你是安全的。 由於在非常罕見的情況下拋出異常,並且兩個相同的ObjectId被生成並試圖同時寫入,所以您只需通過生成一個新的ObjectId並嘗試再次保存文檔來處理它們。

相關問題