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

Diferencia entre almacenar un ObjectId y su forma de cadena, en MongoDB

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.