sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Mongodb ObjectID es único entre documentos?

Es único para todos los propósitos prácticos. La no unicidad mencionada es bastante teórica.

Se construye el ObjectId fuera de

  • una marca de tiempo (segundos desde la época)
  • un identificador de máquina
  • la identificación del proceso
  • y un contador de 3 bytes que comienza con un valor aleatorio cada segundo

Por lo tanto, en la mediana, a menos que escriba más de 3080 documentos por segundo por cliente, debe ahorrar. Debe tener en cuenta que _id tiene una restricción única:Incluso si intentaría escribir el mismo ObjectId dos veces, habría una excepción.

Nota al margen:incluso los algoritmos hash como MD5 o (en menor medida) SHA256 tienen una pequeña posibilidad de colisión. Pero con una restricción única, estás a salvo.

Editar :Dado que se produce una excepción en el muy, muy, MUY raro caso de que se generen dos ObjectId idénticos y se intente escribirlos al mismo tiempo, simplemente manéjelos generando un nuevo ObjectId e intente guardar el documento nuevamente.