Yo, personalmente, culpo a su código. Me las arreglo perfectamente bien en mis aplicaciones codificando de la manera correcta. Convierto a cadena en el código para comparar y me aseguro de que cualquier cosa que parezca un ObjectId
en realidad se usa como un ObjectId
.
Es bueno notar que entre el ObjectId
(http://docs.mongodb.org/manual/reference/object-id/) y su representación hexadecimal, de hecho, hay 12 bytes de diferencia, el ObjectId
siendo 12 bytes y su representación hexadecimal siendo 24.
No solo se trata de la eficiencia del almacenamiento, sino también de los índices; no solo porque son más pequeños sino también porque el ObjectId
se puede usar de manera especial para garantizar que solo se carguen partes del índice; las piezas que se utilizan. Esto se vuelve más notorio al insertar, donde solo se debe cargar la última parte de ese índice para garantizar la unicidad. No puede garantizar tal comportamiento con su representación hexadecimal.
Recomiendo encarecidamente que no utilice el OjbectId
Representación hexadecimal de . Si desea "hacer su vida más fácil", sería mejor que creara un _id
diferente que es más pequeño pero de alguna manera igual de único y compatible con índices.