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

Jak wygląda MongoDB ObjectID 12 bajtów?

Zgodnie z dokumentacją ObjectId , ten ciąg, który widzisz, jest szesnastkową reprezentacją 12 bajtów. To nie jest Unicode ani nawet ciąg znaków. To właściwie liczba.

Bajt to 8 bitów, co oznacza, że ​​może mieć 2^8 ==256 możliwych wartości (patrz Byte ).

Jak zwięźle przedstawić liczbę z 256 możliwymi wartościami? A co powiesz na przedstawienie go jako 16^2? Możesz to osiągnąć, używając 2 wartości szesnastkowych (podstawa 16). Jedyne, co musisz wymyślić, to system numeracji, który idzie do 16 zamiast 10.

W rzeczywistości używamy liter z a do f do reprezentowania wartości od 10 do 15.

W ten sposób jeden bajt może być reprezentowany przez dwie liczby szesnastkowe. Tak się składa, że ​​używa się a do f ponieważ nie mogliśmy zawracać sobie głowy wymyślaniem dla nich specjalnych symboli. To nie są litery. To są liczby.

Więc nie, ciąg, który widzisz w ObjectId, nie reprezentuje 24 bajtów. Zamiast tego każde 2 znaki reprezentują bajt. 24 liczby szesnastkowe ==12 bajtów.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak wyświetlić pola dokumentu w powłoce mongo?

  2. MongoDB Analytics Series:SlamData — uruchamiaj SQL i twórz raporty bezpośrednio w MongoDB

  3. Dlaczego ten db.eval -> array.push miałby być wykonywany dwukrotnie dla niektórych rekordów?

  4. Wzorzec modułu JavaScript z wywołaniem zwrotnym Ajax

  5. Unikalna walidacja Mongoose nie działa. Zapisywanie zduplikowanych wpisów