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

Mongodb:_id deve essere univoco a livello globale durante lo sharding

A meno che non vengano sostituiti manualmente, gli _id generati automaticamente sono UUID che, secondo la documentazione , sono costituiti da "un timestamp a 4 byte (secondi dall'epoca), un ID macchina a 3 byte, un ID processo a 2 byte e un contatore a 3 byte".

Come puoi vedere, un ID macchina univoco fa parte dell'UUID. Ciò garantisce che nessuna macchina nello shard crei mai lo stesso UUID in modo indipendente (a meno che non abbiano lo stesso ID macchina:la probabilità è 1:16777215 e quando accade può essere facilmente verificata). L'unica situazione in cui teoricamente potresti avere un UUID duplicato è quando un singolo processo crea più di 2^24 (oltre 16 milioni) di UUID in un solo secondo.

tl;dr: Non devi preoccuparti di UUID duplicati:sono, come afferma la documentazione, "progettati per avere una probabilità ragionevolmente alta di essere univoci una volta assegnati".