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

Cómo sobrescribir los Id. de objeto en Mongo db al crear una aplicación en Sails

Atención :Mongo id debe ser lo más único posible para escalar bien. El ObjectId predeterminado consta de una marca de tiempo, ID de máquina, ID de proceso y un valor de incremento aleatorio. Dejarlo solo con este último lo haría propenso a colisiones.

Sin embargo, a veces desea embellecer el valor interminable de ObjectID (es decir, que se muestre en la URL después de codificación ). Entonces, debería considerar usar una estrategia de incremento atómico adecuada .

Anular el ejemplo de _id:

db.testSOF.insert({_id:"myUniqueValue", a:1, b:1})

Crear una Secuencia de incremento automático :

  • Usar colección de contadores :Básicamente, una colección separada que realiza un seguimiento del último número de la secuencia. Personalmente, me pareció más cohesivo almacenar la función findAndModify en la colección system.js, aunque falta capacidades de control de versiones.
  • Bucle optimista

Editar:

Encontré un problema en el que el dueño de velas-mongo dijo:

Menciona la primera técnica que agregué en esta respuesta:Usar colección de contadores . En el mismo número, lewins muestra una solución alternativa.