الأمان
- فعّل المصادقة دائمًا (مستخدم + كلمة مرور).
- قيّد الوصول بالشبكة (IP allowlist في Atlas).
- لا ترفع سلسلة الاتصال إلى Git — استخدم
.env. - مبدأ أقلّ صلاحية لمستخدمي قاعدة البيانات.
حقن NoSQL
تحقّق من مدخلات المستخدم ولا تمرّرها مباشرة في الاستعلام:
// خطر: قد يحقن المستخدم كائن استعلام
const user = await User.findOne({ email: req.body.email });
// تأكّد أن email نصّ، لا كائن مثل { $ne: null }
استخدم تحقّق المخطّط (Mongoose) وتحويل الأنواع.
الأداء
- أنشئ فهارس للحقول المستعلَم عنها كثيرًا.
- استخدم الإسقاط لجلب الحقول اللازمة فقط.
- راقب الاستعلامات البطيئة بـ
explain.
النمذجة
- صمّم حسب أنماط القراءة (البيانات التي تُقرأ معًا تُخزَّن معًا).
- تجنّب المصفوفات غير المحدودة النموّ داخل مستند.
🎯 التالي: خلاصة المسار.