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

PHP文字列を24文字から20文字に圧縮(短縮)します

    あなたの参照ページで私が見たものから、24文字は16進数です。 customer-idが英数字の場合は、base_convert を使用できます。 数を短くします。残念ながら、完全な数は32ビットを超えているため、機能させるには部分的に変換する必要があります。

    // Pad with 0's to make sure you have 24 chars
    $padded = str_repeat('0', 24 - strlen($mongoId)) . $mongoId;
    $leastSignificant = base_convert(substr($padded, 14, 10), 16, 32); // will be 8 chars most
    $middleSignificant = base_convert(substr($padded, 4, 10), 16, 32); // will be 8 chars most
    $highSignificant = base_convert(substr($padded, 0, 4), 16, 32); // will be 4 chars most
    
    // Concatenate, and make sure everything is correctly padded
    $result = str_repeat('0', 4 - strlen($highSignificant)) . $highSignificant .
              str_repeat('0', 8 - strlen($middleSignificant )) . $middleSignificant .
              str_repeat('0', 8 - strlen($leastSignificant )) . $leastSignificant;
    echo strlen($result); // Will echo 20
    
    // Reverse the algoritm to retrieve the mongoId for a given customerId 
    



    1. MongoDB Orders / Sales Aggregation Group Per Month Sum Total + Count Field

    2. mongodumpの失敗'locale::facet ::_ S_create_c_locale name not valid'

    3. ASP.Net MVCでMongoDB接続を管理する正しい方法は何ですか?

    4. カスタムデシリアライズ