ObjectId
Los s están ahí para situaciones en las que no tiene una clave única para cada documento en una colección. Son únicos, por lo que no tiene que preocuparse por los conflictos y se fragmentan razonablemente bien en implementaciones grandes sin demasiada preocupación (tienen ventajas y desventajas, lea más aquí
).
El ObjectId
también contiene la marca de tiempo del cliente donde el ObjectId
se generó (a menos que el servidor DB esté configurado para generar todas las claves). Con eso, como notó, puede usar la marca de tiempo para realizar algunas operaciones de fecha. Sin embargo, si planea usar Aggregation Framework, encontrará que no puede usar un ObjectId
en cualquier operación de fecha actualmente (issue
). Si desea utilizar el AF, necesitará un segundo campo que contenga la fecha, lamentablemente almacenándolo dos veces con el ObjectId
valor interno de .
Si puede estar seguro de que el _id
que está generando es único, entonces no hay muchas razones para usar un ObjectId
en su estructura de datos.