MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Eingebettete MongoDB-Objekte haben keine ID (Nullwert)

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