U moet het genereren van ObjectID aan de clients/drivers overlaten. Dit zorgt ervoor dat gegenereerde ID's uniek zijn tussen veel dingen, zoals tijd, server en proces. Het gebruik van de standaard ObjectID betekent ook dat methoden die zijn geïmplementeerd door stuurprogramma's (zoals getTimestamp()) werken.
Als u echter overweegt om uw eigen type ID voor het _id-veld (dus niet het standaard ObjectID-type), dan is dat een haalbare keuze. Als u bijvoorbeeld informatie over een Twitter-gebruiker wilt opslaan, is het volkomen logisch om de Twitter-ID van de gebruiker als _id-waarde te gebruiken. Persoonlijk probeer ik zo min mogelijk op het ObjectID-type te vertrouwen, aangezien collecties vaak al een veld in elk document hebben dat elk document op unieke wijze identificeert.