sql >> Database >  >> NoSQL >> MongoDB

Hoe is een MongoDB ObjectID 12 bytes?

Volgens de ObjectId-documentatie , die string die je ziet is een hexadecimale weergave van de 12 bytes. Het is geen Unicode of zelfs een string. Het is eigenlijk een getal.

Een byte is 8 bits, wat betekent dat het 2^8 ==256 mogelijke waarden kan hebben (zie Byte ).

Hoe geef je een getal met 256 mogelijke waarden beknopt weer? Hoe zit het met het weergeven van het als 16 ^ 2 in plaats daarvan? U kunt dit bereiken door 2 hexadecimale waarden te gebruiken (grondtal 16). Het enige dat je hoeft uit te vinden is een nummeringssysteem dat naar 16 gaat in plaats van 10.

In feite gebruiken we letters van a naar f om waarden 10 tot 15 weer te geven.

Zo kan één byte worden weergegeven in twee hexadecimale getallen. Toevallig gebruik je a naar f omdat we niet de moeite namen om er speciale symbolen voor uit te vinden. Het zijn geen brieven. Het zijn cijfers.

Dus nee, de tekenreeks die u in ObjectId ziet, vertegenwoordigt geen 24 bytes. Elke 2 tekens vertegenwoordigen in plaats daarvan een byte. 24 hexadecimale getallen ==12 bytes.



  1. Vind dubbele records in MongoDB

  2. Wanneer naar Redis? Wanneer naar MongoDB?

  3. ServiceStack.Redis Kan transport niet lezen - BasicRedisClientManager

  4. Diagnose stellen van onverwachte redis-serverfout