ObjectId
s zijn er voor situaties waarin u niet voor elk document in een verzameling een unieke sleutel heeft. Ze zijn uniek, dus je hoeft je geen zorgen te maken over conflicten en ze scheren redelijk goed in grote implementaties zonder al te veel zorgen (ze hebben hun voor- en nadelen, lees meer hier
).
De ObjectId
bevat ook de tijdstempel van de client waar de ObjectId
is gegenereerd (tenzij de DB-server is geconfigureerd om alle sleutels te genereren). Daarmee kun je, zoals je hebt opgemerkt, de tijdstempel gebruiken om enkele datumbewerkingen uit te voeren. Als u echter van plan bent het Aggregation Framework te gebruiken, zult u merken dat u geen ObjectId
kunt gebruiken. in alle datumbewerkingen momenteel (probleem
). Als je de AF wilt gebruiken, heb je een tweede veld nodig dat de datum bevat, helaas dubbel opgeslagen met de ObjectId
's interne waarde.
Als u er zeker van kunt zijn dat de _id
je genereert uniek is, dan is er niet veel reden om een ObjectId
te gebruiken in uw datastructuur.