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

MongoDb:Fordelen ved at bruge ObjectID i forhold til en streng, der indeholder et Id?

Den største årsag er, at ObjectID'er er 12 bytes, mens en tilsvarende streng er 24 bytes. Over en stor nok samling, tæller de 12 bytes gemt pr. ID virkelig op! Disse id'er betyder også, at færre bytes overføres over ledningen, når du læser eller skriver dokumentet.

Derudover forventer nogle ODM'er ObjectID'er til eksterne dokumentreferencer og kan blive forvirret af strengversioner af ID'et. Jeg er dog ikke bekendt nok med PHP ODM'er til at sige, om dette kan påvirke dig specifikt.

Med hensyn til API-ting bør du dog sandsynligvis normalisere dataene, før du sender dem til klienten, for da Mongo ikke håndhæver et skema, kan du bogstaveligt talt have enhver form for data i et givet felt, så du kan evt. har nogle dokumenter, der har streng-id'er, og andre, der har BSON-id'er, og din API ville med glæde sende dem begge igennem til klienten, men det ene eller det andet kan forårsage brud. I dette særlige tilfælde skal du bruge BSON ObjectID'er i dine dokumenter og derefter caste dem til strenge i dit API-output.



  1. Plotning af staters navn på kortet ved hjælp af Node js og D3 i realtid

  2. En guide til MongoDB med Java

  3. Auto-genereret felt til MongoDB ved hjælp af Spring Boot

  4. Redis med Resque og Rails:ERR-kommando er ikke tilladt, når der bruges hukommelse> 'maxmemory'