sql >> Database teknologi >  >> NoSQL >> MongoDB

Komprimering af en hex-streng i Ruby/Rails

Du kan repræsentere et hexadecimalt id i en base højere end 16 for at gøre dens strengrepræsentation kortere. Ruby har indbygget support til at arbejde med baser fra 2 op til 36 .

b36 = '4b3fc1400de0690bf2000001'.hex.to_s(36)
# => "29a6dblglcujcoeboqp"

For at konvertere den tilbage til en 24-tegns streng kan du gøre noget som dette:

'%024x' % b36.to_i(36)
# => "4b3fc1400de0690bf2000001"

For at opnå bedre "komprimering" kan du repræsentere id'et i base højere end 36 . Der er Ruby-biblioteker, der vil hjælpe dig med det. all-your-base gem er et sådant bibliotek.

Jeg anbefaler base 62 repræsentation, da den kun bruger 0-9 , a-z og A-Z tegn, hvilket betyder, at det er URL-sikkert som standard.



  1. Projekt for at filtrere egenskab inden for det andet indlejrede array

  2. Nemmeste måde at installere Mongodb PHP-udvidelse i Ubuntu 13.10 (saucy)?

  3. Opretter forbindelse til RedisToGo gennem Node.JS

  4. MongoDB.service mislykkedes med resultatudgangskode