MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Mongodb ObjectID уникален ли е между документите?

Той е уникален за всички практически цели. Споменатата неуникалност е по-скоро теоретична.

ObjectId е конструиран извън

  • клеймо за време (секунди от епохата)
  • идентификатор на машината
  • ID на процеса
  • и 3-байтов брояч, започващ с произволна стойност всяка секунда

Така че, средно, освен ако не пишете повече от 3080 документа в секунда на клиент, трябва да сте спестени. Трябва да се отбележи, че _id има уникално ограничение:дори ако бихте се опитали да напишете един и същ ObjectId два пъти, ще има изключение.

Странична бележка:дори хеш алгоритми като MD5 или (в по-малка степен) SHA256 имат малък шанс за сблъсък. Но с уникално ограничение вие ​​сте в безопасност.

Редактиране :Тъй като се хвърля изключение в много, много, МНОГО редкия случай, когато два идентични ObjectId се генерират и се опитват да бъдат записани едновременно, вие просто се справяте с тях, като генерирате нов ObjectId и се опитвате да запазите документа отново.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. meteor заявка за всички документи с уникално поле

  2. MongoDB:Как да изтриете всички записи на колекция в MongoDB Shell?

  3. mongodb:конвертиране на идентификатори на обекти в BSON::ObjectId

  4. Има ли начин за възстановяване на наскоро изтрити документи в MongoDB?

  5. htmlspecialchars премахнете стойността вътре в масива?