Mongoose لجافا سكريبت (Node.js): دليل شامل مع أمثلة

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

ما هو Mongoose ولماذا هو مطلوب؟

\n\n

Mongoose هي مكتبة نمذجة البيانات الكائنية (ODM) لـ MongoDB و Node.js. توفر طريقة قوية قائمة على المخططات لنمذجة بيانات تطبيقك. إذا كنت تعمل مع MongoDB في بيئة Node.js، فإن Mongoose هو المعيار الفعلي لإدارة البيانات.

\n\n

لماذا هو مطلوب؟ MongoDB هي قاعدة بيانات NoSQL تخزن البيانات في شكل مستندات شبيهة بـ JSON. على عكس قواعد البيانات العلائقية، لا تتطلب مخططًا صارمًا. هذا يوفر مرونة، لكنه قد يؤدي إلى الفوضى في المشاريع الكبيرة. يحل Mongoose هذه المشكلة بإضافة طبقة تجريد تقوم بما يلي:

\n\n
    \n
  • تحديد المخططات (Schemas): تصف بنية مستنداتك: الحقول الموجودة، أنواعها، القيم الافتراضية، وما إذا كانت إلزامية.
  • \n
  • التحقق من صحة البيانات: قبل الحفظ في قاعدة البيانات، يتحقق Mongoose من توافق البيانات مع مخططك. هذا يمنع كتابة بيانات "غير صالحة".
  • \n
  • توفير طرق ملائمة: بدلاً من كتابة استعلامات خام لـ MongoDB، تستخدم طرقًا بديهية مثل .find() و .create() و .updateOne().
  • \n
  • إدارة العلاقات: يمكنك بسهولة ربط المستندات من مجموعات مختلفة (مثل المستخدم وطلباته) باستخدام populate().
  • \n
  • الوسيطة (Middleware/خطافات): تسمح بتنفيذ كود قبل أو بعد عمليات معينة (مثل تشفير كلمة المرور قبل الحفظ).
  • \n
\n\n

بكلمات بسيطة: Mongoose هو "جسر" بين كود جافا سكريبت الخاص بك و MongoDB، مما يجعل العمل مع قاعدة البيانات منظمًا وآمنًا ومريحًا.

\n\n

تثبيت Mongoose

\n\n

يتم تثبيت Mongoose في مشروع Node.js الخاص بك من خلال npm (مدير حزم Node). تأكد من تثبيت Node.js و npm لديك.

\n\n

افتح الطرفية في جذر مشروعك ونفذ الأمر التالي:

\n\n
npm install mongoose
\n\n

سيقوم هذا الأمر بتثبيت أحدث إصدار ثابت من Mongoose وإضافته إلى ملف package.json الخاص بك في قسم dependencies.

\n\n

ستحتاج أيضًا إلى خادم MongoDB مثبتًا وقيد التشغيل. يمكنك تثبيته محليًا أو استخدام خدمة سحابية مثل MongoDB Atlas.

\n\n

بداية سريعة مع مثال كود

\n\n

لنقم بإنشاء تطبيق بسيط يتصل بـ MongoDB ويحفظ معلومات عن مستخدم.

\n\n
    \n
  1. توصيل Mongoose بقاعدة البيانات:
  2. \n
\n\n
// app.js\nconst mongoose = require('mongoose');\n\n// سلسلة الاتصال بـ MongoDB (استبدل 'mydatabase' باسم قاعدة بياناتك)\nconst mongoURI = 'mongodb://localhost:27017/mydatabase';\n\nmongoose.connect(mongoURI)\n  .then(() => console.log('تم الاتصال بنجاح بـ MongoDB!'))\n  .catch(err => console.error('خطأ في الاتصال:', err));
\n\n
    \n
  1. تحديد المخطط والنموذج:
  2. \n
\n\n
// تحديد مخطط (Schema) للمستخدم\nconst userSchema = new mongoose.Schema({\n  name: { type: String, required: true },\n  email: { type: String, required: true, unique: true },\n  age: { type: Number, default: 18 }\n});\n\n// إنشاء نموذج (Model) بناءً على المخطط\nconst User = mongoose.model('User', userSchema);
\n\n
    \n
  1. إنشاء وحفظ مستند:
  2. \n
\n\n
async function createUser() {\n  try {\n    // إنشاء مثيل للنموذج\n    const newUser = new User({\n      name: 'إيفان إيفانوف',\n      email: 'ivan@example.com',\n      age: 30\n    });\n\n    // حفظ المستخدم في قاعدة البيانات\n    const savedUser = await newUser.save();\n    console.log('تم حفظ المستخدم:', savedUser);\n  } catch (error) {\n    console.error('خطأ أثناء الحفظ:', error);\n  }\n}

توصيات