Selalu populate()
bidang tertentu dalam skema lumpur Anda
Baca dokumen di sini.
Catatan: Populasi adalah fitur yang kuat, tetapi memiliki keterbatasan dan membantu Anda lolos dengan desain skema yang buruk. Secara khusus, biasanya desain skema MongoDB yang buruk untuk memasukkan array yang tumbuh tanpa terikat dalam dokumen Anda. Jangan sertakan sederetan ObjectID yang terus tumbuh dalam skema Anda - data Anda akan menjadi sulit saat array tumbuh dan Anda pada akhirnya akan mencapai batas ukuran dokumen 16 MB. Secara umum, pikirkan baik -baik saat merancang skema Anda.
Modul mongoose-autopopulate
memaparkan fungsi tunggal yang dapat Anda lewati ke fungsi Mongoose Schema plugin()
.
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' ) ) ;
Hanya terapkan plugin ini ke skema tingkat atas. Jangan terapkan plugin ini ke skema anak.
// 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' ) ) ;