populate()
بعض الحقول في مخططات mongoose الخاصة بك
اقرأ المستندات هنا.
ملاحظة: يعد عدد السكان ميزة قوية ، لكن لديه قيود ويساعدك على التخلص من تصميم المخطط الضعيف. على وجه الخصوص ، عادة ما يكون تصميم مخطط MongoDB سيئًا لتضمين المصفوفات التي تنمو دون ملزمة في مستنداتك. لا تتضمن مجموعة من الكائنات المتزايدة باستمرار في مخططك - ستصبح بياناتك غير عملية مع نمو الصفيف وستصل في النهاية إلى حد حجم وثيقة 16 ميجابايت. بشكل عام ، فكر بعناية عند تصميم مخططاتك.
تكشف وحدة mongoose-autopopulate
وظيفة واحدة يمكنك نقلها إلى وظيفة plugin()
لمخطط 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' ) ) ;
فقط تطبيق هذا البرنامج المساعد على مخططات المستوى الأعلى. لا تطبق هذا البرنامج المساعد على مخططات الطفل.
// 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' ) ) ;