sql >> Databasteknik >  >> NoSQL >> MongoDB

Skillnaden mellan att lagra ett ObjectId och dess strängform, i MongoDB

Jag personligen skyller på din kod. Jag kommer runt det här perfekt i mina applikationer genom att koda på rätt sätt. Jag konverterar till sträng i kod för att jämföra och jag ser till att allt som ser ut som ett ObjectId används faktiskt som ett ObjectId .

Det är bra att notera att mellan ObjectId (http://docs.mongodb.org/manual/reference/object-id/) och dess hex-representation finns det faktiskt en skillnad på 12 bytes, ObjectId är 12 byte och dess hex-representation är 24.

Det handlar inte bara om lagringseffektivitet utan också om index; inte bara för att de är mindre utan också eftersom ObjectId kan användas på ett speciellt sätt för att säkerställa att endast delar av indexet laddas; delarna som används. Detta blir mest märkbart när du infogar, där bara den senaste delen av det indexet behöver laddas in för att säkerställa unikhet. Du kan inte garantera ett sådant beteende med dess hex-representation.

Jag rekommenderar starkt att du inte använder OjbectId s hex representation. Om du vill "göra ditt liv enklare" är det bättre att skapa ett annat _id som är mindre men på något sätt lika unik och indexvänlig.



  1. Är Redis-uppdateringar synkrona?

  2. Hur infogar jag HTML i Mongodb?

  3. MongoDB $strLenBytes

  4. Tips för att hantera dina databaskonfigurationer