Immer populate()
Lesen Sie die Dokumente hier.
Hinweis: Die Bevölkerung ist ein leistungsstarkes Merkmal, hat jedoch Einschränkungen und hilft Ihnen, mit einem schlechten Schema -Design davonzukommen. Insbesondere ist es in der Regel ein schlechtes MongoDB -Schema -Design, Arrays einzubeziehen, die in Ihren Dokumenten ohne gefesselt wachsen. Fügen Sie kein ständig wachsendes Array von ObjektIDs in Ihr Schema ein - Ihre Daten werden unhandlich, wenn das Array wächst, und Sie werden schließlich die Größenbeschränkung von 16 MB erreichen. Denken Sie im Allgemeinen sorgfältig nach, wenn Sie Ihre Schemas entwerfen.
Das mongoose-autopopulate
enthält eine einzige Funktion, die Sie an plugin()
-Funktion des Mongoose-Schemas übergeben können.
const schema = new mongoose . Schema ( {
populatedField : {
type : mongoose . Schema . Types . ObjectId ,
ref : 'ForeignModel' ,
// The below option tells this plugin to always call `populate()` on
// `populatedField`
autopopulate : true
}
} ) ;
schema . plugin ( require ( 'mongoose-autopopulate' ) ) ;
Wenden Sie dieses Plugin nur auf Schemata der obersten Ebene an. Wenden Sie dieses Plugin nicht auf Kinderschemas an.
// Don't do `nestedSchema.plugin(require('mongoose-autopopulate'))`.
// You only need to add mongoose-autopopulate to top-level schemas.
const nestedSchema = mongoose . Schema ( {
child : { type : Number , ref : 'Child' , autopopulate : true }
} ) ;
const topSchema = mongoose . Schema ( { nested : nestedSchema } ) ;
topSchema . plugin ( require ( 'mongoose-autopopulate' ) ) ;