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

Compactando uma string hexadecimal em Ruby/Rails


Você pode representar um id hexadecimal em uma base maior que 16 para tornar sua representação de string mais curta. Ruby tem suporte embutido para trabalhar com bases de 2 até 36 .
b36 = '4b3fc1400de0690bf2000001'.hex.to_s(36)
# => "29a6dblglcujcoeboqp"

Para convertê-lo de volta para uma string de 24 caracteres, você pode fazer algo assim:
'%024x' % b36.to_i(36)
# => "4b3fc1400de0690bf2000001"

Para obter uma "compressão" melhor, você pode representar o id na base superior a 36 . Existem bibliotecas Ruby que o ajudarão com isso. all-your-base gem é uma dessas bibliotecas.

Eu recomendo a base 62 representação, pois usa apenas 0-9 , a-z e A-Z caracteres, o que significa que é seguro para URL por padrão.