MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как MongoDB ObjectID е 12 байта?

Съгласно документацията за ObjectId , този низ, който виждате, е шестнадесетично представяне на 12-те байта. Това не е Unicode или дори низ. Това всъщност е число.

Един байт е 8 бита, което означава, че може да има 2^8 ==256 възможни стойности (вижте Байт ).

Как представяте накратко число с 256 възможни стойности? Какво ще кажете вместо това да го представите като 16^2? Можете да постигнете това, като използвате 2 шестнадесетични стойности (база 16). Единственото нещо, което трябва да измислите, е система за номериране, която отива на 16 вместо на 10.

В интерес на истината ние използваме букви от a към f за представяне на стойности от 10 до 15.

Така един байт може да бъде представен в две шестнадесетични числа. Случайно се използва a към f тъй като не можехме да си направим труда да измислим специални символи за тях. Те не са букви. Те са числа.

Така че не, низът, който виждате в ObjectId, не представлява 24 байта. Вместо това всеки 2 знака представляват байт. 24 шестнадесетични числа ==12 байта.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB - различен със заявка не използва индекси

  2. Търсите референтно приложение nodejs, expressjs &mongodb, което да използвате като шаблон

  3. Как да направите заявка с помощта на dot( . ) през Mongoose в Node.js и как да добавите празен масив

  4. Защо получавам неразпознат аргумент за dateFromString:'format', въпреки че имам db версия>3.6, която поддържа агрегацията

  5. Как да групирате чрез указване на функция за извличане на ключ?