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

Bagaimana ObjectID MongoDB 12 byte?

Sesuai dengan dokumentasi ObjectId , string yang Anda lihat adalah representasi hex dari 12 byte. Ini bukan Unicode atau bahkan string. Ini sebenarnya angka.

Satu byte adalah 8 bit, artinya dapat memiliki 2^8 ==256 kemungkinan nilai (lihat Byte ).

Bagaimana Anda merepresentasikan angka dengan 256 kemungkinan nilai secara ringkas? Bagaimana kalau mewakilinya sebagai 16^2 saja? Anda dapat mencapai ini dengan menggunakan 2 nilai heksadesimal (basis 16). Satu-satunya hal yang perlu Anda ciptakan adalah sistem penomoran yang menggunakan 16 bukannya 10.

Faktanya, kami menggunakan huruf dari a ke f untuk mewakili nilai 10 hingga 15.

Dengan demikian, satu byte dapat direpresentasikan dalam dua bilangan heksadesimal. Kebetulan menggunakan a ke f karena kami tidak dapat diganggu untuk menciptakan simbol khusus untuk mereka. Mereka bukan huruf. Mereka adalah angka.

Jadi tidak, string yang Anda lihat di ObjectId tidak mewakili 24 byte. Setiap 2 karakter mewakili satu byte sebagai gantinya. 24 angka heksadesimal ==12 byte.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana memulihkan database MongoDB yang jatuh?

  2. Upgrade mongo ke 2.6 menggunakan home-brew dan sekarang tidak dapat terhubung

  3. Mongodb mencocokkan karakter beraksen sebagai karakter dasar

  4. Masalah Koneksi MongoDB Intermiten:Upaya telah dilakukan untuk mengakses soket dengan cara yang dilarang oleh izin aksesnya

  5. kerangka kerja agregasi mongodb cocok dengan dokumen bersarang