sql >> Databáze >  >> NoSQL >> MongoDB

Jak je MongoDB ObjectID 12 bajtů?

Podle dokumentace ObjektId , ten řetězec, který vidíte, je hexadecimální reprezentace 12 bajtů. Není to Unicode nebo dokonce řetězec. Je to vlastně číslo.

Bajt má 8 bitů, což znamená, že může mít 2^8 ==256 možných hodnot (viz Byte ).

Jak stručně znázorníte číslo s 256 možnými hodnotami? Co takhle to reprezentovat jako 16^2? Toho dosáhnete použitím 2 hexadecimálních hodnot (základ 16). Jediná věc, kterou musíte vymyslet, je systém číslování, který jde do 16 místo 10.

Ve skutečnosti používáme písmena z a na f reprezentovat hodnoty 10 až 15.

Jeden byte tedy může být reprezentován dvěma hexadecimálními čísly. Náhodou se používá a na f protože jsme se nemohli obtěžovat vymýšlet pro ně speciální symboly. Nejsou to dopisy. Jsou to čísla.

Takže ne, řetězec, který vidíte v ObjectId, nepředstavuje 24 bajtů. Každé 2 znaky představují místo toho bajt. 24 hexadecimálních čísel ==12 bajtů.



  1. Jak provést atomovou aktualizaci na EmbeddedDocument v poli ListField v MongoEngine?

  2. Nález odlišný od sbírek v mongodb

  3. jak definovat umístění v entitě pomocí mongodb

  4. Jak nainstalovat NodeJS s MongoDB na Ubuntu