Siempre populate()
ciertos campos en sus esquemas de mangosta
Lea los documentos aquí.
Nota: La población es una característica poderosa, pero tiene limitaciones y lo ayuda a escapar con un diseño de esquema deficiente. En particular, generalmente es un mal diseño de esquema de MongoDB incluir matrices que crecen sin vinculación en sus documentos. No incluya una matriz de Objectids en constante crecimiento en su esquema: sus datos se volverán difíciles de manejar a medida que la matriz crezca y eventualmente alcanzará el límite de tamaño del documento de 16 MB. En general, piense cuidadosamente al diseñar sus esquemas.
El módulo mongoose-autopopulate
expone una sola función que puede pasar a la función 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' ) ) ;
Solo aplique este complemento a los esquemas de nivel superior. No aplique este complemento a los esquemas infantiles.
// 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' ) ) ;