Estoy creando un servicio para el que usaré MongoDB como un back-end de almacenamiento. El servicio producirá un hash de la entrada del usuario y luego verá si ese mismo hash (+ entrada) ya existe en nuestro conjunto de datos.Creación de ID de objeto personalizado en MongoDB
El hash será único aún aleatorio (= no incremental/secuencial), por lo que mi pregunta es:
- personal ¿Se -legitimate- utilizar un valor aleatorio para un ID de objeto? Ejemplo:
$object_id = new MongoId(HEX-OF-96BIT-HASH);
O será MongoDB tratar el ID de objeto diferente al resto de los producidos por el servidor, ya que un "real" de objeto también contiene marcas de tiempo, machine_id, etc?
¿Cuáles son los pros y los contras de utilizar un valor 'aleatorio'? Supongo que sería estadísticamente más lento para el motor actualizar el índice en las inserciones cuando los nuevos _id no son de ninguna manera incrementales. ¿Estoy en lo cierto?
Identificación única + aleatoria es el camino a seguir. – Sim
@Sim ¿Es por eso que votaste? Tal vez puedas explicarnos un poco tu razonamiento, básicamente estás hablando el mismo razonamiento que tanto yo como este respondedor. Básicamente, ObjectId es una identificación única y aleatoria. – Sammaye
@Sammaye lo siento, debe haber sido un clic mal dirigido. :/Quería votar por su respuesta y por esta porque son más relevantes que la mía. Si editas tu respuesta, puedo votarla. Sin la edición, el sistema no me lo permitirá. – Sim