Nee, het is helemaal niet slecht en in feite de ingebouwde ObjectId
is behoorlijk groot binnen de index, dus als je denkt dat je iets beters hebt, dan ben je meer dan welkom om de standaardwaarde van de _id
te wijzigen veld naar wat dan ook.
Maar, en dit is een grote maar , zijn er enkele overwegingen bij het besluit om af te stappen van de standaard geformuleerde ObjectId
, vooral bij gebruik van de automatisch oplopende _ids zoals hier getoond:https://docs.mongodb.com/v3.0/tutorial/create-an-auto-incrementing-field
Multithreading is niet zo'n groot probleem omdat findAndModify
en de atoomsloten kunnen daar echt voor zorgen, maar dan loop je gewoon tegen je eerste probleem aan. findAndModify
is niet de snelste functie en ook niet de lichtste en er zijn aanzienlijke prestatiedalingen geconstateerd bij regelmatig gebruik.
Je moet ook rekening houden met de overhead om dit toch zelf te doen, zelfs zonder findAndModify
. Voor elke insert heb je een extra query nodig. Stel je voor dat je een unieke id hebt die je elke keer dat je wilt invoegen moet opvragen. Uiteindelijk zal uw invoegsnelheid dalen tot een crawl en uw vergrendelingstijd zal toenemen.
Natuurlijk de ObjectId
is echt goed in uniek zijn zonder zijn eigen uniciteit te hoeven controleren of formuleren door de database aan te raken voordat deze wordt ingevoegd, daarom heeft het deze overhead niet.
Als je nog steeds het gevoel hebt dat een geheel getal _id past bij je scenario, ga ervoor, maar houd rekening met de hierboven beschreven overhead.