كيفية تطوير MongoDB مع جافا سكريبت

Kyfyt Ttwyr Mongodb M Jafa Skrybt



إحدى أهم مزايا استخدام MongoDB لمطوري الويب هو تكاملها الممتاز مع JavaScript. يوفر MongoDB برنامج تشغيل JavaScript أصلي يمكّن المطورين من التفاعل مع قاعدة البيانات مباشرةً باستخدام كود JavaScript. الآن، يعد تثبيت برنامج تشغيل MongoDB Node.js على الجهاز ضروريًا قبل أن نتمكن من البدء في إنشاء تطبيقات MongoDB في JavaScript. نحتاج إلى استخدام الأمر التالي لهذا:

npm وmongodb

يتيح لنا برنامج التشغيل التفاعل مع MongoDB من كود JavaScript الخاص بك وإجراء عمليات متنوعة مثل الاتصال بقاعدة البيانات وإدراج البيانات والاستعلام عن البيانات وتحديث البيانات.







المثال 1: تطوير اتصال MongoDB باستخدام JavaScript

ابدأ بإنشاء اتصال مع خادم MongoDB باستخدام JavaScript والذي يمكن إنجازه باستخدام الوحدة النمطية 'npm' كما تمت مناقشته سابقًا.



مقدار ثابت { com.MongoClient } = يتطلب ( 'مونجودب' ) ;

مقدار ثابت عنوان URL = 'mongodb:// 127.0.0.1:27017 ' ;
مقدار ثابت عميل = جديد com.MongoClient ( عنوان URL ) ;
مقدار ثابت dbName = 'قاعدة بياناتي' ;

غير متزامن وظيفة رئيسي ( ) {
انتظر العميل. يتصل ( ) ;
وحدة التحكم. سجل ( 'تم الاتصال بالخادم بنجاح' ) ;
مقدار ثابت ديسيبل = عميل. ديسيبل ( dbName ) ;
مقدار ثابت مجموعة = ديسيبل. مجموعة ( 'الأشخاص' ) ;

يعود 'منتهي.' ;
}

رئيسي ( )
. ثم ( وحدة التحكم. سجل )
. يمسك ( وحدة التحكم. خطأ )
. أخيراً ( ( ) => عميل. يغلق ( ) ) ;

نقوم أولاً باستيراد MongoClient المطلوب من وحدة 'mongodb' في ملف 'File.js' الخاص بنا. نقوم بعد ذلك بتحديد عنوان URL للاتصال لخادم MongoDB (عنوان url) وإنشاء مثيل MongoClient جديد باستخدام عنوان URL المحدد.



بعد ذلك نحدد اسم قاعدة بيانات MongoDB (dbName) المراد استخدامها في الاتصال. بعد ذلك، تقوم الدالة main() غير المتزامنة بمعالجة العمليات الرئيسية على خادم MongoDB. هنا، نتصل بخادم MongoDB باستخدام انتظار Client.connect(). هذه عملية غير متزامنة، لذا تتوقف الوظيفة مؤقتًا حتى يتم إنشاء الاتصال بنجاح. يمكننا عرض الرسالة التي تظهر في المطالبة بمجرد إجراء الاتصال بنجاح. نحصل على مرجع لقاعدة البيانات بالاسم المحدد في 'dbName' باستخدام Client.db(dbName).





بعد ذلك، نحصل على إشارة إلى المجموعة المسماة 'الأشخاص' باستخدام db.collection('Persons'). بعد تحديد الدالة main()، نستدعي main() لتنفيذ العمليات. إذا تم حل الوظيفة main() بنجاح، فإنها تطبع النتيجة (في هذه الحالة، هي السلسلة 'done') باستخدام .then(console.log). إذا كان هناك خطأ أثناء التنفيذ، فإنه يلتقط الخطأ ويطبعه باستخدام .catch(console.error). وأخيرًا، يضمن إغلاق اتصال عميل MongoDB باستخدام .finally(() => client.Close()).

وبالتالي، يعرض الموجه الرسالة التي تم فيها إنشاء اتصال MongoDB في ملف JavaScript:



المثال 2: قم بإدراج مستند MongoDB باستخدام JavaScript

الآن بعد أن تم إنشاء الاتصال مع خادم MongoDB، يمكننا استخدام استعلامات MongoDB مع JavaScript. هنا، نقوم بتطبيق استعلام الإدراج لإدراج مستند واحد.

مقدار ثابت { com.MongoClient } = يتطلب ( 'مونجودب' ) ;

مقدار ثابت عنوان URL = 'mongodb:// 127.0.0.1:27017 ' ;
مقدار ثابت عميل = جديد com.MongoClient ( عنوان URL ) ;
مقدار ثابت dbName = 'قاعدة بياناتي' ;

غير متزامن وظيفة رئيسي ( ) {
مقدار ثابت ديسيبل = عميل. ديسيبل ( dbName ) ;
مقدار ثابت مجموعة = ديسيبل. مجموعة ( 'المستخدمين' ) ;
مقدار ثابت InsertDoc =
انتظار جمع. إدراج واحد ( { اسم : 'أندرو' , عمر : 23 } ) ;
وحدة التحكم. سجل ( 'تم إدراج المستند =' , InsertDoc ) ;
يعود 'منتهي.' ;
}

رئيسي ( )
. ثم ( وحدة التحكم. سجل )
. يمسك ( وحدة التحكم. خطأ )
. أخيراً ( ( ) => عميل. يغلق ( ) ) ;

نعرّف الوظيفة الرئيسية () بأنها وظيفة غير متزامنة تقوم بعملية إدراج قاعدة البيانات. بداخله، نتصل بخادم MongoDB باستخدام مثيل MongoClient وعنوان URL. بعد ذلك، نصل إلى قاعدة البيانات المحددة (MyDB) باستخدام Client.db(dbName) ونحصل على مجموعة 'المستخدمين' من قاعدة البيانات باستخدام db.collection('users').

بعد ذلك، نقوم بإدراج مستند باسم الحقول 'Andrew' والعمر 23 عامًا في مجموعة 'users' باستخدام المجموعة.insertOne(). ترجع طريقة الإدراج () وعدًا يتم حله بنتيجة الإدراج. يتم عرض المستند المضاف باستخدام console.log. وأخيرًا، نقوم بإغلاق اتصال عميل MongoDB.

تم إدراج المستند الذي تم إدراجه في مجموعة قاعدة بيانات MongoDB بنجاح كما هو موضح في الإخراج التالي:

مثال 3: ابحث عن مستند MongoDB باستخدام JavaScript

وبالمثل، يمكننا تطبيق استعلام 'find' الخاص بـ MongoDB باستخدام JavaScript للعثور على المستند من المجموعة التي تم إنشاؤها في المثال السابق.

مقدار ثابت { com.MongoClient } = يتطلب ( 'مونجودب' ) ;

مقدار ثابت عنوان URL = 'mongodb:// 127.0.0.1:27017 ' ;
مقدار ثابت عميل = جديد com.MongoClient ( عنوان URL ) ;
مقدار ثابت dbName = 'قاعدة بياناتي' ;

غير متزامن وظيفة رئيسي ( ) {
مقدار ثابت ديسيبل = عميل. ديسيبل ( dbName ) ;
مقدار ثابت مجموعة = ديسيبل. مجموعة ( 'المستخدمين' ) ;
مقدار ثابت findQuery = { اسم : 'أندرو' } ;
مقدار ثابت findDoc = انتظار جمع. يجد ( findQuery ) . لمجموعة ( ) ;
وحدة التحكم. سجل ( 'المستند =' , findDoc ) ;
}

رئيسي ( )
. ثم ( وحدة التحكم. سجل )
. يمسك ( وحدة التحكم. خطأ )
. أخيراً ( ( ) => عميل. يغلق ( ) ) ;

نبدأ بالعرض التوضيحي من الوظيفة الرئيسية حيث نتصل بخادم MongoDB أولاً باستخدام مثيل MongoClient الذي تم إنشاؤه وعنوان URL المحدد. بعد ذلك، يمكننا الوصول إلى قاعدة بيانات MyDB باستخدام Client.db(dbName) حيث يكون dbName هو اسم قاعدة البيانات المحددة مسبقًا.

بعد ذلك، نحصل على مرجع لمجموعة 'المستخدمين' من قاعدة البيانات باستخدام db.collection('users'). يتم إنشاء كائن استعلام يسمى 'findQuery' والذي يحدد أن المستندات التي سيتم استردادها يجب أن يكون لها حقل اسم يساوي 'Andrew'. بعد ذلك، نقوم بإجراء استعلام 'بحث' على مجموعة 'المستخدمين' باستخدام المجموعة Collection.find(findQuery) التي تقوم بإرجاع المؤشر إلى المستندات المطابقة.

يتم استخدام الكلمة الأساسية 'انتظار' قبل Collection.find() للتأكد من حل النتيجة قبل المتابعة. يتم تحويل نتيجة عملية البحث إلى مجموعة من المستندات باستخدام toArray()، ويتم تخزين المستندات التي تم العثور عليها في متغير 'findDoc'. يتم بعد ذلك تسجيل المستندات في وحدة التحكم باستخدام console.log.

ونتيجة لذلك، يتم عرض المستند الذي تم العثور عليه لمجموعة MongoDB عند التنفيذ:

المثال 4: تحديث مستند MongoDB باستخدام JavaScript

بعد ذلك، نقوم بإجراء عملية 'التحديث' في JavaScript لتحديث المستند المحدد لمجموعة MongoDB.

مقدار ثابت { com.MongoClient } = يتطلب ( 'مونجودب' ) ;

مقدار ثابت عنوان URL = 'mongodb:// 127.0.0.1:27017 ' ;
مقدار ثابت عميل = جديد com.MongoClient ( عنوان URL ) ;
مقدار ثابت dbName = 'قاعدة بياناتي' ;

غير متزامن وظيفة رئيسي ( ) {
مقدار ثابت ديسيبل = عميل. ديسيبل ( dbName ) ;
مقدار ثابت مجموعة = ديسيبل. مجموعة ( 'المستخدمين' ) ;
مقدار ثابت updateQuery = { اسم : 'أندرو' } ;
مقدار ثابت updateName = { مجموعة $ : { اسم : 'نفسه' } } ;
مقدار ثابت updateResult = انتظار جمع. updateOne ( updateQuery , updateName ) ;
وحدة التحكم. سجل ( 'المستند المحدث =' , updateResult ) ;
يعود 'منتهي' ;
}

رئيسي ( )
. ثم ( وحدة التحكم. سجل )
. يمسك ( وحدة التحكم. خطأ )
. أخيراً ( ( ) => عميل. يغلق ( ) ) ;

من أجل تحديث مستند في مجموعة 'المستخدمين'، نقوم باستدعاء الدالة main(). نقوم بعد ذلك بإعداد استعلام 'تحديث' باستخدام { name: 'Andrew' } للعثور على المستند الذي يحتوي حقل الاسم على 'Andrew'. بعد ذلك، قمنا بتعيين حقل اسم المستند المطابق إلى 'Sam' باستخدام { $set: { name: 'Sam' } }.

نحدد استعلام 'التحديث' وعملية 'التحديث' لإجراء التحديث باستخدام المجموعة.updateOne(updateQuery, updateName). تقوم طريقة updateOne() بتحديث المستند الأول الذي يطابق استعلام 'التحديث' وتقوم بإرجاع كائن يمثل نتيجة التحديث. يحتوي المتغير 'updateResult' على نتيجة إجراء التحديث.

تعرض شاشة الإخراج التالية نتائج الاستعلام المحدثة:

المثال 5: حذف مستند MongoDB باستخدام JavaScript

أخيرًا، نستخدم طريقة الحذف الخاصة بـ MongoDB لحذف المستند السابق من MongoDB داخل JavaScript.

مقدار ثابت { com.MongoClient } = يتطلب ( 'مونجودب' ) ;

مقدار ثابت عنوان URL = 'mongodb:// 127.0.0.1:27017 ' ;
مقدار ثابت عميل = جديد com.MongoClient ( عنوان URL ) ;
مقدار ثابت dbName = 'قاعدة بياناتي' ;

غير متزامن وظيفة رئيسي ( ) {
مقدار ثابت ديسيبل = عميل. ديسيبل ( dbName ) ;
مقدار ثابت مجموعة = ديسيبل. مجموعة ( 'المستخدمين' ) ;
مقدار ثابت deleteQuery = { اسم : 'نفسه' } ;
مقدار ثابت this.deleteResult = انتظار جمع. deleteOne ( deleteQuery ) ;
وحدة التحكم. سجل ( 'مستند محذوف =' , this.deleteResult ) ;
يعود 'منتهي' ;
}

رئيسي ( )
. ثم ( وحدة التحكم. سجل )
. يمسك ( وحدة التحكم. خطأ )
. أخيراً ( ( ) => عميل. يغلق ( ) ) ;

نقوم بإنشاء كائن استعلام 'حذف' يسمى 'deleteQuery' والذي يحدد معايير المستندات المراد حذفها. في هذه الحالة، يقوم بالبحث عن المستندات التي يكون حقل الاسم فيها يساوي 'Sam'. بعد إعداد استعلام الحذف، نقوم بتطبيق عملية الحذف الفعلية باستخدام طريقةdeleteOne() لكائن المجموعة.

نقوم بتمرير 'deleteQuery' كوسيطة إلى 'deleteOne' الذي يحذف أول مستند مطابق يلبي المعايير المحددة في الاستعلام. يحتفظ المتغير 'deleteResult' بنتيجة إجراء الحذف.

يتم حذف المستند المحدد من مجموعة MongoDB باستخدام ملف 'javascript':

خاتمة

لدينا الآن فهم أساسي حول كيفية استخدام MongoDB مع JavaScript عبر برنامج تشغيل MongoDB Node.js. لقد أظهرنا كل ذلك باستخدام عمليات Mongo DB المختلفة، بدءًا من الاتصال وحتى حذف المستند باستخدام JavaScript. من هنا، يمكننا بناء تطبيقات أكثر تعقيدًا ودمج MongoDB في مشاريع Node.js حسب الحاجة.