MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Kompres (persingkat) string PHP dari 24 karakter menjadi 20

Dari apa yang saya lihat di halaman referensi Anda, 24 karakter adalah heksadesimal. Jika id pelanggan mungkin alfanumerik, Anda dapat menggunakan base_convert untuk mempersingkat angka. Sayangnya nomor lengkapnya> 32bit jadi Anda perlu menyembunyikannya di beberapa bagian untuk membuatnya berfungsi:

// 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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Kesalahan pemilihan server Docker dan mongo-go-driver

  2. Cara membuat kueri mongodb secara dinamis

  3. Mutex dengan MongoDB

  4. MongoDB $hariDariMinggu

  5. Eksekusi Kueri gagal saat menjalankan perintah Mongo melalui skrip bash