No, no está nada mal y, de hecho, el ObjectId incorporado es bastante considerable dentro del índice, por lo que si cree que tiene algo mejor, puede cambiar el valor predeterminado de _id campo a lo que sea.
Pero, y esto es un gran pero , hay algunas consideraciones al decidir alejarse del ObjectId formulado por defecto , especialmente cuando se usan los _id de incremento automático como se muestra aquí:https://docs.mongodb.com/v3.0/tutorial/create-an-auto-incrementing-field
Los subprocesos múltiples no son un problema tan grande porque findAndModify y las cerraduras atómicas en realidad pueden encargarse de eso, pero luego te encuentras con tu primer problema. findAndModify no es la función más rápida ni la más liviana y se han notado caídas significativas en el rendimiento al usarla regularmente.
También debe considerar la sobrecarga de hacer esto usted mismo de todos modos, incluso sin findAndModify . Para cada inserción necesitará una consulta adicional. Imagine tener una identificación única que debe consultar la unicidad de cada vez que desea insertar. Eventualmente, su tasa de inserción se reducirá y su tiempo de bloqueo aumentará.
Por supuesto, el ObjectId es realmente bueno para ser único sin tener que verificar o formular su propia singularidad tocando la base de datos antes de la inserción, por lo tanto, no tiene esta sobrecarga.
Si todavía cree que un _id entero se adapta a su escenario, hágalo, pero tenga en cuenta la sobrecarga descrita anteriormente.