Sempre populate()
certos campos em seus esquemas de mongonó
Leia os documentos aqui.
Nota: A população é uma característica poderosa, mas tem limitações e ajuda a se safar do design de esquema ruim. Em particular, geralmente é um projeto de esquema de MongoDB ruim para incluir matrizes que crescem sem limites em seus documentos. Não inclua uma variedade de objetos em constante crescimento em seu esquema - seus dados se tornarão pesados à medida que a matriz crescer e você acabará por atingir o limite de tamanho de documento de 16 MB. Em geral, pense com cuidado ao projetar seus esquemas.
O módulo mongoose-autopopulate
expõe uma única função que você pode passar para a função plugin()
do esquema de Mongoose.
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' ) ) ;
Aplique apenas este plug-in aos esquemas de nível superior. Não aplique este plugin aos esquemas infantis.
// 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' ) ) ;