sql >> Databasteknik >  >> NoSQL >> MongoDB

Är Mongodb ObjectID unikt mellan dokument?

Den är unik för alla praktiska ändamål. Den icke-unicitet som nämns är ganska teoretisk.

ObjectId är konstruerat av

  • 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.



  1. monk vs mongoose för Mongodb

  2. 2 sätt att ta bort en databas i MongoDB

  3. räkna mongodb i php

  4. Skillnad mellan att lagra heltal och strängar i Redis