Operazioni MongoDB CRUD (insert
, update
, find
, remove
) operano tutti esclusivamente su documenti di primo livello, anche se ovviamente puoi filtrare per campi nei documenti incorporati. I documenti incorporati vengono sempre restituiti all'interno del documento principale.
Il _id
campo è un campo obbligatorio del documento principale e in genere non è necessario o presente nei documenti incorporati. Se hai bisogno di un identificatore univoco, puoi certamente crearli e puoi utilizzare il _id
campo per memorizzarli se è conveniente per il tuo codice o il tuo modello mentale; più in genere, prendono il nome da ciò che rappresentano (ad es. "nome utente", "altra chiave di sistema", ecc.). Né MongoDB stesso, né alcuno dei driver compilerà automaticamente un _id
campo tranne nel documento di primo livello.
In particolare in Java, se desideri generare valori ObjectId per _id
campo nei documenti incorporati, puoi farlo con:
someEmbeddedDoc._id = new ObjectId();