MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como é um ObjectID do MongoDB de 12 bytes?


De acordo com a documentação do ObjectId , essa string que você vê é uma representação hexadecimal dos 12 bytes. Não é Unicode ou mesmo uma string. Na verdade é um número.

Um byte tem 8 bits, o que significa que pode ter 2^8 ==256 valores possíveis (consulte Byte ).

Como você representa um número com 256 valores possíveis de forma sucinta? Que tal representá-lo como 16^2? Você pode conseguir isso usando 2 valores hexadecimais (base 16). A única coisa que você precisa inventar é um sistema de numeração que vá para 16 em vez de 10.

Na verdade, usamos letras de a para f para representar os valores de 10 a 15.

Assim, um byte pode ser representado em dois números hexadecimais. Acontece de usar a para f já que não podíamos nos dar ao trabalho de inventar símbolos especiais para eles. Não são letras. São números.

Portanto, não, a string que você vê no ObjectId não representa 24 bytes. Cada 2 caracteres representam um byte. 24 números hexadecimais ==12 bytes.