Toujours populate()
certains champs dans vos schémas de mangouste
Lisez les documents ici.
Remarque: La population est une fonctionnalité puissante, mais elle a des limites et vous aide à vous en sortir avec une mauvaise conception de schéma. En particulier, il s'agit généralement d'une mauvaise conception de schéma MongoDB pour inclure des tableaux qui se développent sans liés dans vos documents. N'incluez pas un tableau d'objectides en pleine croissance dans votre schéma - vos données deviendront lourdes à mesure que le tableau se développera et vous finirez par atteindre la limite de taille du document de 16 Mo. En général, réfléchissez soigneusement lors de la conception de vos schémas.
Le module mongoose-autopopulate
expose une seule fonction que vous pouvez transmettre à la fonction plugin()
de Mongoose Schema.
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' ) ) ;
Appliquez uniquement ce plugin sur des schémas de niveau supérieur. N'appliquez pas ce plugin aux schémas enfants.
// 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' ) ) ;