MongoDB هي قاعدة بيانات NoSQL بدون مخطط مع هياكل مستندات مرنة ، على عكس قواعد بيانات SQL. يجلب استخدام MongoDB كقاعدة بيانات العديد من الفوائد ، من سهولة التوسع إلى ميزات قاعدة البيانات الحديثة مثل المعاملات.

يدعم MongoDB أيضًا مكتبات نمذجة بيانات الكائنات (ODM) مثل Mongoose. تقوم وحدات ODM بإدارة علاقات البيانات والتحقق من صحة المخططات وتحويل الكائنات إلى نماذج بيانات. إنها تجعل من السهل التفاعل مع قاعدة بيانات MongoDB.

في بضع خطوات ، ستتعلم كيفية استخدام MongoDB في تطبيق NestJS مع حزمة نمس NestJS المخصصة.

الخطوة 1: تثبيت التبعيات

قبل استخدام Mongoose في تطبيق NestJS الخاص بك ، يجب عليك تثبيته مع حزمة NestJS الأصلية الخاصة به.

قم بتثبيت النمس وباستخدام حزمة NestJS الأصلية الخاصة به مدير الحزم npm عن طريق الركض:

تثبيت npm تضمين التغريدة/ النمس النمس

الخطوة 2: الاتصال بـ MongoDB

عند انتهاء التثبيت ، انتقل إلى ملف app.module.ts ملف. ثم استيراد النمس من @ عش / النمس:

يستورد {MongooseModule} من "@ nestjs / النمس" ؛

بعد ذلك ، في مجموعة الواردات الخاصة بك ، قم باستدعاء forRoot طريقة على النمس وتمرير MongoDB URI الخاص بك كوسيطة:

instagram viewer
الواردات: [MongooseModule.forRoot (process.env. MONGODB_URI)],

ال forRoot الطريقة تشارك اتصال قاعدة البيانات من خلال جميع الوحدات النمطية في التطبيق الخاص بك. يأخذ كائن تكوين اختياري ؛ يمكنك معرفة المزيد عنها في النمس وثائق الخيارات.

الخطوة 3: إنشاء مخطط النمس

المخطط هو كائن JSON يحدد بنية البيانات ومحتوياتها. ستحتاج إلى إنشاء واحد لتحديد كيفية تخزين Mongoose لبياناتك في قاعدة بيانات MongoDB.

في الوحدة النمطية الجذر للتطبيق الخاص بك ، قم بإنشاء "المخططات" مجلد. هذا المجلد هو المكان الذي ستخزن فيه جميع ملفات المخططات الخاصة بك.

داخل الخاص بك المخططات مجلد ، قم بإنشاء ملف مخطط وقم بتسميته باستخدام اصطلاح تسمية NestJS (.schema.ts).

بعد ذلك ، أضف عمليات الاستيراد التالية إلى ملف المخطط الخاص بك:

يستورد {Prop ، Schema ، SchemaFactory} من "@ nestjs / النمس" ؛
يستورد { وثيقة } من "النمس"؛

ال دعم يقوم مصمم الديكور بتمييز الخصائص التي يعلق عليها كممتلكات في قاعدة بيانات MongoDB الخاصة بك.

ال مخطط يحدد المصمم الفصل الذي يعلق عليه كمخطط.

ال مصنع المخطط تحتوي الفئة على طرق ثابتة تستخدم في إنشاء النموذج.

النمس وثيقة يمثل تعيين واحد لواحد للمستندات كما تم تخزينها في MongoDB. سوف تحتاجه كتعليق توضيحي من النوع.

ثم، إنشاء فصل دراسي، علق عليه بامتداد مخطط مصمم لوضع علامة عليه كمخطط النمس ، وتصديره:

@مخطط()
يصدّرصف دراسيتجريبي{}

بعد ذلك ، قم بإنشاء وتصدير نوع الاتحاد مع فصلك الدراسي و وثيقة:

يصدّريكتب DemoDocument = عرض توضيحي ووثيقة ؛

ثم أضف الخصائص التي تريدها إلى الفصل وقم بتعليقها بامتداد دعم مصمم. يمكنك تمرير كائن تكوين اختياري إلى ملف دعم الديكور وتعيين العقار على النحو المطلوب:

@مخطط()
يصدّرصف دراسيتجريبي{
@دعم({ مطلوب: حقيقي })
property_1: سلسلة ؛
}

ال النمس تغطي الوثائق كائن التكوين بمزيد من التفصيل.

أخيرًا ، قم بإنشاء وتصدير نموذج النمس عبر ملف مصنع المخططcreateForClass طريقة واجتياز فصلك كوسيطة:

يصدّرمقدار ثابت DemoSchema = SchemaFactory.createForClass (عرض توضيحي) ،

يجب أن يبدو مخططك المكتمل كما يلي:

يستورد {Prop ، Schema ، SchemaFactory} من "@ nestjs / النمس" ؛
يستورد { وثيقة } من 'النمس'؛

يصدّريكتب DemoDocument = عرض توضيحي ووثيقة ؛

@مخطط()
يصدّرصف دراسيتجريبي{
@دعم({ مطلوب: حقيقي })
property_1: سلسلة ؛

@دعم({ مطلوب: حقيقي })
property_2: رقم ؛

@دعم()
property_3: سلسلة؛

@دعم({ مطلوب: حقيقي })
الخاصية_4: قيمة منطقية;
}

يصدّرمقدار ثابت DemoSchema = SchemaFactory.createForClass (عرض توضيحي) ،

الخطوة 4: تسجيل المخطط

انتقل إلى مجلد الوحدة الخاصة بك وأضف عمليات الاستيراد التالية:

يستورد {MongooseModule} من "@ nestjs / النمس" ؛
يستورد {Demo، DemoSchema} من '../schemas/demo.schema'؛

بعد ذلك ، قم بإنشاء "الواردات"مجموعة داخل @وحدة مصمم. ثم ، داخل المصفوفة ، قم باستدعاء للميزة طريقة على النمس.

ال للميزة تأخذ الطريقة في مجموعة من نماذج النمس. قم بتمرير كائن التكوين بامتداد اسم تم تعيين الخاصية على اسم فئة المخطط ، وملف مخطط تم تعيين الخاصية على مخططك الذي تم إنشاؤه:

النمس.forFeature([{الاسم: Demo.name ، المخطط: DemoSchema}]),

الخطوة 5: حقن نموذج النمس

بعد ذلك ، ستحتاج إلى حقن نموذج Mongoose لتمكين الاستعلام عن قاعدة البيانات الخاصة بك عن طريق استدعاء طرق Mongoose في النموذج.

انتقل إلى فئة خدمة الوحدة الخاصة بك ، وأضف عمليات الاستيراد التالية:

يستورد { نموذج } من 'النمس'؛
يستورد {InjectModel} من "@ nestjs / النمس" ؛
يستورد {Demo، DemoDocument} من '../schemas/demo.schema'؛

استخدم ال نموذج واجهة كتعريف نوع لنموذجك ، مما يمنحه إمكانية الوصول إلى طرق Mongoose.

ال نموذج يقوم المصمم بحقن نموذج النمس في مُنشئ فئة الخدمة.

بعد ذلك ، قم بإنشاء ملف البناء داخل فئة خدمتك. يجب أن يستغرق خاص متغير كوسيطة ، أ نموذج بنوع عام من DemoDocument. ضع تعليقًا توضيحيًا على المتغير الخاص بامتداد نموذج مصمم ومرر اسم فئة المخطط كحجة:

تضمين التغريدة()
يصدّرصف دراسيDemoService{
البناء(
تضمين التغريدة(Demo.name)
النموذج التجريبي الخاص: نموذج<DemoDocument>,
) {}
}

يمكنك الاستعلام عن قاعدة بيانات MongoDB عن طريق استدعاء توابع Mongoose على المتغير الخاص (نموذج).

مزايا استخدام MongoDB

إلى جانب مجتمعها القوي على الإنترنت وسهولة الاستخدام ، توفر MongoDB توفرًا عاليًا للبيانات واستقرارًا. يوفر تحليلات متسارعة وتجميع البيانات والمزيد ، مما يجعله قاعدة البيانات المثالية لمشاريعك.