sql >> Database teknologi >  >> NoSQL >> MongoDB

Er Mongodb ObjectID unikt mellem dokumenter?

Den er unik til alle praktiske formål. Den nævnte ikke-entydighed er ret teoretisk.

ObjectId er konstrueret ud af

  • et tidsstempel (sekunder siden epoke)
  • en maskin-id
  • proces-id'et
  • og en tæller på 3 byte, der starter med en tilfældig værdi hvert sekund

Så ved medianen, medmindre du skriver mere end 3080 dokumenter i sekundet pr. klient, bør du være gemt. Det er at bemærke, at _id har en unik begrænsning:Selv hvis du ville prøve at skrive det samme ObjectId to gange, der ville være en undtagelse.

Sidebemærkning:selv hash-algoritmer som MD5 eller (i mindre grad) SHA256 har en lille chance for kollision. Men med en unik begrænsning er du sikker.

Rediger :Da en undtagelse er smidt i det meget, Meget, MEGET sjældne tilfælde, at to identiske ObjectId'er genereres og forsøges skrevet samtidigt, håndterer du dem simpelthen ved at generere et nyt ObjectId og forsøger at gemme dokumentet igen.



  1. $cond operatør java kode

  2. Lagring af filer i MongoDB med GridFS

  3. Hvad gør hver Meteor-proces?

  4. få alle dokumenter med maksimal værdi ved hjælp af aggregering i mongodb