MongoDB CRUD-operationer (insert
, update
, find
, remove
) opererer alle udelukkende på dokumenter på øverste niveau -- selvom du selvfølgelig kan filtrere efter felter i indlejrede dokumenter. Indlejrede dokumenter returneres altid i det overordnede dokument.
_id
felt er et obligatorisk felt i det overordnede dokument og er typisk ikke nødvendigt eller til stede i indlejrede dokumenter. Hvis du har brug for en unik identifikator, kan du helt sikkert oprette dem, og du kan bruge _id
felt for at gemme dem, hvis det er praktisk for din kode eller din mentale model; mere typisk er de opkaldt efter det, de repræsenterer (f.eks. "brugernavn", "otherSystemKey" osv.). Hverken MongoDB selv eller nogen af driverne vil automatisk udfylde en _id
felt undtagen på dokumentet på øverste niveau.
Specifikt i Java, hvis du ønsker at generere ObjectId-værdier for _id
felt i indlejrede dokumenter, kan du gøre det med:
someEmbeddedDoc._id = new ObjectId();