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();