sql >> Databáze >  >> NoSQL >> MongoDB

Mongodb – při sdílení musí být _id globálně jedinečné

Pokud je ručně nenahradíte, automaticky vygenerovaná _id jsou UUID, která podle dokumentaci , sestávají ze "4bajtového časového razítka (sekundy od epochy), 3bajtového ID stroje, 2bajtového ID procesu a 3bajtového čítače".

Jak vidíte, jedinečné ID stroje je součástí UUID. To zajišťuje, že žádné dva stroje ve shardu nikdy nevytvoří stejné UUID nezávisle (pokud nemají stejné ID stroje – pravděpodobnost je 1:16777215 a když se to stane, lze to snadno ověřit). Jedinou situací, kdy byste teoreticky mohli mít duplicitní UUID, je situace, kdy jeden proces vytvoří více než 2^24 (přes 16 milionů) UUID za jedinou sekundu.

tl;dr: Nemusíte se obávat duplicitních UUID – jsou, jak uvádí dokumentace, „navrženy tak, aby při přidělení měly přiměřeně vysokou pravděpodobnost, že budou jedinečné“.




  1. Připojení k RedisToGo přes Node.JS

  2. Zkrátit sbírku

  3. Jak použít agregát MongoDB k získání prvního z každé skupiny, včetně null?

  4. jako dotaz v mongoDB