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

Eingebettetes Dokument ohne Array?

Sie können Schemas nicht auf diese Weise einbetten, mit der Begründung, dass diese untergeordneten Dokumente mit vollständigen Dokumenten verwechselt würden, siehe diesen Fehlerthread, wo es heißt:

Der Grund, warum wir diese Unterstützung in der Vergangenheit nicht hinzugefügt haben, ist, weil wir uns fragen, ob alle Pre-Hooks für das Pseudo-Kind-Dokument auf die gleiche Weise ausgeführt werden, und es impliziert, dass wir save() on aufrufen können dieses Kind.

Die Antwort hier ist, nicht das Schema, sondern nur die Definition zu teilen.

var userdef = { name: String };
var UserSchema = new Schema(userdef);
var BlogPostSchema = new Schema({author: userdef});

Dies würde zu einem verschachtelten Benutzerobjekt führen, ohne das Schema tatsächlich zu verschachteln.