Ini unik untuk semua tujuan praktis. Ketidak-unik-an yang disebutkan agak teoretis.
ObjectId dibuat dari
- cap waktu (detik sejak zaman)
- pengidentifikasi mesin
- id proses
- dan penghitung 3 byte yang dimulai dengan nilai acak setiap detik
Jadi, pada median, kecuali Anda menulis lebih dari 3080 dokumen per detik per klien, Anda harus menyimpannya. Perlu diperhatikan bahwa _id
memiliki batasan unik:Genap jika Anda akan mencoba untuk menulis ObjectId yang sama dua kali, akan ada pengecualian.
Catatan tambahan:bahkan algoritma hash seperti MD5 atau (pada tingkat lebih rendah) SHA256 memiliki sedikit kemungkinan tabrakan. Tetapi dengan batasan yang unik, Anda aman.
Sunting :Karena pengecualian dilemparkan dalam kasus yang sangat, Sangat, SANGAT jarang terjadi bahwa dua ObjectIds identik dihasilkan dan dicoba untuk ditulis secara bersamaan, Anda cukup menanganinya dengan membuat ObjectId baru dan mencoba menyimpan dokumen lagi.