MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Krótki, przyjazny dla użytkownika identyfikator dla mongo

Próbujesz przekonwertować podstawę 16 (szesnastkowo) na podstawę 36 (26 znaków alfabetu plus 10 cyfr). Prostym sposobem może być po prostu użycie parseInt parametr radix, aby przeanalizować identyfikator szesnastkowy, a następnie wywołać .toString(36) przekonwertować to na bazę 36. Co zmieniłoby „507f191e810c19729de860ea” w „VDFGUZEA49X1V50356”, zmniejszając długość z 24 do 18 znaków.

Funkcja
function toBase36(id) {
  var half = Math.floor(id.length / 2);
  var first = id.slice(0, half);
  var second = id.slice(half);
  return parseInt(first, 16).toString(36).toUpperCase()
       + parseInt(second, 16).toString(36).toUpperCase();
}

Funkcja
function toBase36(id) {
  var half = Math.floor(id.length / 2);
  var first = id.slice(0, half);
  var second = id.slice(half);
  return parseInt(first, 16).toString(36).toUpperCase()
       + parseInt(second, 16).toString(36).toUpperCase();
}

// Ignore everything below (for demo only)
function convert(e){ if (e.target.value.length % 2 === 0) base36.value = toBase36(e.target.value) }
var base36 = document.getElementById('base36');
var hex = document.getElementById('hex');
document.getElementById('hex').addEventListener('input', convert, false);
convert({ target: { value: hex.value } });
input { font-family: monospace; width: 15em; }
<input id="hex" value="507f191e810c19729de860ea">
<input id="base36" readonly>


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Domyślna biblioteka obietnic Mongoose jest przestarzała w stosie MEAN

  2. PHP intl.so nie działa

  3. importowanie pliku CSV MongoDB z ISODate

  4. Co może spowodować błąd zniszczenia topologii podczas wywoływania db.destroyDatabase z natywnym node.js mongodb?

  5. Czy można generować kolekcje MongoDB o nazwach dynamicznych?