sql >> データベース >  >> NoSQL >> MongoDB

mongoの短いユーザーフレンドリーなID

    基数16(16進数)を基数36(アルファベットの26文字と数字の10)に変換しようとしています。簡単な方法は、parseIntを使用することです。 の基数パラメーターを使用して16進IDを解析し、.toString(36)を呼び出します。 それをbase-36に変換します。これにより、「507f191e810c19729de860ea」が「VDFGUZEA49X1V50356」に変わり、長さが24文字から18文字に短縮されます。

    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();
    }
    

    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. マングースで変数を一意キーにする方法は?

    2. カスタム関数は列mongodbプロジェクションを計算しました

    3. Springブートredis統合テスト用の信頼できるライブラリ

    4. ループはクエリに基づいてtrueまたはfalseを出力していません