sql >> Database teknologi >  >> NoSQL >> MongoDB

Forskellen mellem at gemme et ObjectId og dets strengform i MongoDB

Jeg personligt giver din kode skylden. Jeg kommer udenom dette perfekt i mine applikationer ved at kode den rigtige måde. Jeg konverterer til streng i kode for at sammenligne, og jeg sikrer, at alt, der ligner et ObjectId bruges faktisk som et ObjectId .

Det er godt at bemærke, at mellem ObjectId (http://docs.mongodb.org/manual/reference/object-id/) og dets hex-repræsentation er der faktisk 12 bytes forskel, ObjectId er 12 bytes, og dens hex-repræsentation er 24.

Det handler ikke kun om lagereffektivitet, men også om indekser; ikke kun fordi de er mindre, men også siden ObjectId kan bruges på en særlig måde for at sikre, at kun dele af indekset er indlæst; de dele, der bruges. Dette bliver mest mærkbart ved indsættelse, hvor kun den seneste del af det indeks skal indlæses for at sikre unikhed. Du kan ikke garantere en sådan adfærd med dens hex-repræsentation.

Jeg vil kraftigt anbefale, at du ikke bruger OjbectId 's hex repræsentation. Hvis du ønsker at "gøre dit liv lettere", ville du være bedre stillet til at oprette et andet _id som er mindre, men på en eller anden måde lige så unik og indeksvenlig.



  1. Node.js + MongoDB:indsæt en og returner det nyligt indsatte dokument

  2. Hvordan håndterer man mongoose-skemamigreringer korrekt?

  3. Kan ikke starte docker mongo-billede på Windows

  4. 5 måder at indsætte dokumenter i MongoDB