Den är unik för alla praktiska ändamål. Den icke-unicitet som nämns är ganska teoretisk.
- en tidsstämpel (sekunder sedan epok)
- en maskinidentifierare
- process-id
- och en 3 byte-räknare som börjar med ett slumpmässigt värde varje sekund
Så, vid medianen, bör du sparas om du inte skriver mer än 3080 dokument per sekund per klient. Notera att _id
har en unik begränsning:Även om du skulle försöka skriva samma ObjectId två gånger, det skulle finnas ett undantag.
Sidanteckning:även hashalgoritmer som MD5 eller (i mindre utsträckning) SHA256 har en liten risk för kollision. Men med en unik begränsning är du säker.
Redigera :Eftersom ett undantag slängs i det mycket, mycket, mycket sällsynta fallet att två identiska ObjectId genereras och försökte skrivas samtidigt, hanterar du dem helt enkelt genom att generera ett nytt ObjectId och försöker spara dokumentet igen.