MongoDB-CRUD-Operationen (insert
, update
, find
, remove
) arbeiten alle ausschließlich mit Dokumenten der obersten Ebene – obwohl Sie natürlich nach Feldern in eingebetteten Dokumenten filtern können. Eingebettete Dokumente werden immer innerhalb des übergeordneten Dokuments zurückgegeben.
Die _id
field ist ein erforderliches Feld des übergeordneten Dokuments und in eingebetteten Dokumenten normalerweise nicht erforderlich oder vorhanden. Wenn Sie eine eindeutige Kennung benötigen, können Sie diese natürlich erstellen, und Sie können die _id
verwenden Feld, um sie zu speichern, wenn dies für Ihren Code oder Ihr mentales Modell geeignet ist; Typischerweise werden sie nach dem benannt, was sie darstellen (z. B. "Benutzername", "andererSystemschlüssel" usw.). Weder MongoDB selbst noch einer der Treiber füllt automatisch eine _id
aus außer im Dokument der obersten Ebene.
Speziell in Java, wenn Sie ObjectId-Werte für _id
generieren möchten Feld in eingebetteten Dokumenten können Sie dies tun mit:
someEmbeddedDoc._id = new ObjectId();