sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDb:Fördelen med att använda ObjectID kontra en sträng som innehåller ett Id?

Den största anledningen är att ObjectIDs är 12 byte, medan en motsvarande sträng är 24 byte. Över en tillräckligt stor samling räcker de 12 byten som sparats per ID verkligen ihop! Dessa ID:n innebär också att färre byte överförs över tråden när du läser eller skriver dokumentet.

Dessutom förväntar sig vissa ODM:er ObjectIDs för externa dokumentreferenser och kan förväxlas med strängversioner av ID:t. Jag är inte tillräckligt bekant med PHP ODM:er för att säga om detta kan påverka dig specifikt.

När det gäller API-grejer bör du dock antagligen normalisera data innan du skickar den till klienten i alla fall, för eftersom Mongo inte tillämpar ett schema kan du ha bokstavligen vilken typ av data som helst i ett givet fält, så du kan har vissa dokument som har sträng-ID:n och andra som har BSON-ID:n, och ditt API skulle gärna skicka dem båda till klienten, men det ena eller det andra kan orsaka brott. I det här specifika fallet bör du använda BSON ObjectIDs i dina dokument och sedan casta dem till strängar i din API-utdata.



  1. Hur streamar man MongoDB-frågeresultat med nodejs?

  2. Skapar en vyfunktion utan att returnera ett svar i Flask

  3. Node.js Kue hur man startar om misslyckade jobb

  4. Frågar du med Redis?