MongoDB CRUD-operationer (insert
, update
, find
, remove
) alla fungerar uteslutande på dokument på toppnivå -- även om du naturligtvis kan filtrera efter fält i inbäddade dokument. Inbäddade dokument returneras alltid inom det överordnade dokumentet.
_id
fältet är ett obligatoriskt fält i det överordnade dokumentet och är vanligtvis inte nödvändigt eller finns i inbäddade dokument. Om du behöver en unik identifierare kan du säkert skapa dem, och du kan använda _id
fält för att lagra dem om det är lämpligt för din kod eller din mentala modell; mer typiskt är de uppkallade efter vad de representerar (t.ex. "användarnamn", "otherSystemKey", etc). Varken MongoDB själv eller någon av drivrutinerna kommer automatiskt att fylla i ett _id
utom i dokumentet på översta nivån.
Specifikt i Java, om du vill generera ObjectId-värden för _id
fältet i inbäddade dokument kan du göra det med:
someEmbeddedDoc._id = new ObjectId();