ObjectId
s er der til situationer, hvor du ikke har en unik nøgle til hvert dokument i en samling. De er unikke, så du behøver ikke bekymre dig om konflikter, og de sønderdeles rimeligt godt i store udrulninger uden for meget bekymring (de har fordele og ulemper, læs mere her
).
ObjectId
indeholder også tidsstemplet for klienten, hvor ObjectId
blev genereret (medmindre DB-serveren er konfigureret til at generere alle nøgler). Med det, som du har bemærket, kan du bruge tidsstemplet til at udføre nogle datohandlinger. Men hvis du planlægger at bruge Aggregation Framework, vil du opdage, at du ikke kan bruge et ObjectId
i enhver dato operation i øjeblikket (udgave
). Hvis du vil bruge AF'en, skal du bruge et andet felt, der indeholder datoen, desværre gemmer det dobbelt med ObjectId
s interne værdi.
Hvis du kan være sikker på, at _id
du genererer er unik, så er der ikke megen grund til at bruge et ObjectId
i din datastruktur.