نود.جي إس MongoDB البرنامج التعليمي مع أمثلة

تحتوي جميع تطبيقات الويب الحديثة في الغالب على نوع من نظام تخزين البيانات في الواجهة الخلفية. على سبيل المثال، إذا أخذت حالة تطبيق التسوق عبر الإنترنت، فسيتم تخزين البيانات مثل سعر أحد العناصر في قاعدة البيانات.

يمكن لإطار عمل Node.js العمل مع قواعد البيانات ذات العلاقات العلائقية (مثل Oracle وMS SQL Server) وقواعد البيانات غير العلائقية (مثل MongoDB). في هذا البرنامج التعليمي، سنرى كيف يمكننا استخدام قواعد البيانات من داخل تطبيقات Node js.

قواعد بيانات Node.js وNoSQL

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

يتمتع Node.js بالقدرة على العمل مع كل من MySQL و MongoDB كقواعد بيانات. من أجل استخدام أي من قواعد البيانات هذه، تحتاج إلى تنزيل الوحدات المطلوبة واستخدامها باستخدام مدير حزم Node.

في حالة MySQLالوحدة المطلوبة تسمى "mysql" وللاستخدام MongoDB الوحدة المطلوبة المراد تثبيتها هي "Mongoose".

باستخدام هذه الوحدات، يمكنك تنفيذ المتابعةwing العمليات في Node.js

  1. إدارة الاتصال pooling – هنا يمكنك تحديد عدد اتصالات قاعدة بيانات MySQL التي يجب صيانتها وحفظها بواسطة Node.js.
  2. إنشاء وإغلاق اتصال بقاعدة بيانات. في كلتا الحالتين، يمكنك توفير وظيفة رد اتصال يمكن استدعاؤها عند تنفيذ طريقتي الاتصال "إنشاء" و"إغلاق".
  3. يمكن تنفيذ الاستعلامات للحصول على البيانات من قواعد البيانات المعنية لاسترداد البيانات.
  4. يمكن أيضًا تحقيق معالجة البيانات، مثل إدراج البيانات وحذفها وتحديثها باستخدام هذه الوحدات.

بالنسبة للمواضيع المتبقية، سننظر في كيفية العمل معها MongoDB قواعد البيانات داخل نود.جي إس.

باستخدام MongoDB و Node.js

كما ناقشنا في الموضوع السابق MongoDB هي إحدى قواعد البيانات الأكثر شيوعًا المستخدمة مع Node.js.

خلال هذا الفصل سنرى

كيف يمكننا إقامة اتصالات مع أ MongoDB قاعدة بيانات

كيف يمكننا إجراء العمليات العادية لقراءة البيانات من قاعدة البيانات بالإضافة إلى إدراج السجلات وحذفها وتحديثها في قاعدة بيانات؟ MongoDB قاعدة البيانات.

لغرض هذا الفصل، لنفترض أن لدينا ما يلي MongoDB البيانات في مكانها.

اسم قاعدة البيانات: EmployDB

اسم المجموعة: الموظف

Documents
{
	{Employeeid : 1, Employee Name : Guru99},
	{Employeeid : 2, Employee Name : Joe},
	{Employeeid : 3, Employee Name : Martin},
}
  1. تثبيت وحدات NPM

أنت بحاجة إلى برنامج تشغيل للوصول إلى Mongo من داخل تطبيق Node. هناك عدد من برامج تشغيل Mongo المتاحة، ولكن MongoDB هو من بين الأكثر شعبية. لتثبيت MongoDB الوحدة، قم بتشغيل الأمر أدناه

تركيب npm mongodb

  1. إنشاء وإغلاق اتصال بـ MongoDB قاعدة البيانات. يوضح مقتطف الكود أدناه كيفية إنشاء وإغلاق اتصال بـ MongoDB قاعدة البيانات.

باستخدام MongoDB و Node.js

شرح الكود:

  1. الخطوة الأولى هي تضمين وحدة النمس، والتي تتم من خلال الدالة require. بمجرد وضع هذه الوحدة في مكانها الصحيح، يمكننا استخدام الوظائف الضرورية المتوفرة في هذه الوحدة لإنشاء اتصالات بقاعدة البيانات.
  2. بعد ذلك، نحدد سلسلة الاتصال بقاعدة البيانات. في سلسلة الاتصال، هناك 3 قيم أساسية تم تمريرها.
  • الأول هو 'mongodb' والذي يحدد أننا متصلون بـ mongoDB قاعدة البيانات.
  • التالي هو "المضيف المحلي" مما يعني أننا نتصل بقاعدة بيانات على الجهاز المحلي.
  • التالي هو "EmployeeDB" وهو اسم قاعدة البيانات المحددة في موقعنا MongoDB قاعدة البيانات.
  1. الخطوة التالية هي الاتصال فعليًا بقاعدة البيانات الخاصة بنا. تأخذ وظيفة الاتصال عنوان URL الخاص بنا ولديها القدرة على تحديد وظيفة رد الاتصال. سيتم استدعاؤه عند فتح الاتصال بقاعدة البيانات. وهذا يتيح لنا الفرصة لمعرفة ما إذا كان الاتصال بقاعدة البيانات ناجحًا أم لا.
  2. في الوظيفة، نكتب السلسلة "تم إنشاء الاتصال" إلى وحدة التحكم للإشارة إلى أنه تم إنشاء اتصال ناجح.
  3. وأخيرًا، نقوم بإغلاق الاتصال باستخدام عبارة db.Close.

إذا تم تنفيذ التعليمات البرمجية أعلاه بشكل صحيح، فسيتم كتابة السلسلة "متصل" إلى وحدة التحكم كما هو موضح أدناه.

باستخدام MongoDB و Node.js

  1. الاستعلام عن البيانات في أ MongoDB قاعدة بيانات - باستخدام MongoDB يمكننا أيضًا جلب البيانات من MongoDB قاعدة البيانات. سيوضح القسم أدناه كيف يمكننا استخدام برنامج التشغيل لجلب جميع المستندات من مجموعة الموظفين لدينا في قاعدة بيانات EmployDB الخاصة بنا. هذه هي المجموعة الموجودة لدينا MongoDB قاعدة بيانات تحتوي على كافة المستندات المتعلقة بالموظفين. يحتوي كل مستند على معرف كائن واسم الموظف ومعرف الموظف لتحديد قيم المستند.

باستخدام MongoDB و Node.js

var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';

MongoClient.connect(url, function(err, db) {

    var cursor = db.collection('Employee').find();

    cursor.each(function(err, doc) {

        console.log(doc);

    });
});

شرح الكود:

  1. في الخطوة الأولى، نقوم بإنشاء مؤشر (المؤشر هو مؤشر يستخدم للإشارة إلى السجلات المختلفة التي تم جلبها من قاعدة البيانات. ثم يتم استخدام المؤشر للتكرار عبر السجلات المختلفة في قاعدة البيانات. هنا نقوم بتعريف اسم متغير يسمى المؤشر والذي سيتم استخدامه لتخزين المؤشر على السجلات التي يتم جلبها من قاعدة البيانات. ) والذي يشير إلى السجلات التي يتم جلبها من MongoDb مجموعة. لدينا أيضًا إمكانية تحديد مجموعة "الموظف" التي سيتم جلب السجلات منها. يتم استخدام وظيفة البحث () لتحديد أننا نريد استرداد كافة المستندات من الملف MongoDB جمع.
  2. نقوم الآن بالتكرار من خلال المؤشر الخاص بنا وسنقوم بتنفيذ وظيفة لكل مستند في المؤشر.
  3. تتمثل وظيفتنا ببساطة في طباعة محتويات كل مستند إلى وحدة التحكم.

ملحوظة: - من الممكن أيضًا جلب سجل معين من قاعدة البيانات. يمكن القيام بذلك عن طريق تحديد شرط البحث في وظيفة البحث (). على سبيل المثال، لنفترض أنك إذا أردت فقط جلب السجل الذي يحتوي على اسم الموظف Guru99، فيمكن كتابة هذا البيان على النحو التالي

var cursor=db.collection('Employee').find({EmployeeName: "guru99"})

إذا تم تنفيذ التعليمات البرمجية أعلاه بنجاح، فإن following سيتم عرض الإخراج في وحدة التحكم الخاصة بك.

الإخراج:

باستخدام MongoDB و Node.js

من الإخراج،

  • ستتمكن من رؤية بوضوح أنه تم استرداد جميع المستندات من المجموعة. هذا ممكن باستخدام طريقة find () الخاصة بـ mongoDB الاتصال (db) والتكرار عبر جميع المستندات باستخدام المؤشر.
  1. إدراج المستندات في المجموعة – يمكن إدراج المستندات في مجموعة باستخدام طريقة InsertOne التي يوفرها MongoDB مكتبة. يوضح مقتطف الكود أدناه كيف يمكننا إدراج مستند في ملف mongoDB جمع.

باستخدام MongoDB و Node.js

var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';

MongoClient.connect(url, function(err, db) {

    db.collection('Employee').insertOne({
        Employeeid: 4,
        EmployeeName: "NewEmployee"
    });
}); 

شرح الكود:

  1. نحن هنا نستخدم طريقة InsertOne من MongoDB المكتبة لإدراج مستند في مجموعة الموظفين.
  2. نحن نحدد الوثيقة ديtails لما يجب إدراجه في مجموعة الموظفين.

إذا قمت الآن بفحص محتويات ملفك MongoDB قاعدة البيانات، ستجد السجل الذي يحتوي على معرف الموظف 4 واسم الموظف "NewEmployee" مدرجًا في مجموعة الموظفين.

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

للتأكد من أن البيانات قد تم إدراجها بشكل صحيح في قاعدة البيانات، تحتاج إلى تنفيذ المتابعةwing أوامر في MongoDB

  1. استخدم "EmployeeDB".
  2. db.Employee.find({Employeeid :4 })

يضمن البيان الأول أنك متصل بقاعدة بيانات EmployDb. البيان الثاني يبحث عن السجل الذي يحتوي على معرف الموظف 4.

  1. تحديث المستندات في المجموعة – يمكن تحديث المستندات في مجموعة باستخدام طريقة updateOne التي يوفرها MongoDB مكتبة. يوضح مقتطف الكود أدناه كيفية تحديث مستند في ملف mongoDB جمع.

باستخدام MongoDB و Node.js

var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';

MongoClient.connect(url, function(err, db) {

    db.collection('Employee').updateOne({
        "EmployeeName": "NewEmployee"
    }, {
        $set: {
            "EmployeeName": "Mohan"
        }
    });
}); 

شرح الكود:

  1. نحن هنا نستخدم طريقة "updateOne" من ملف MongoDB المكتبة، والتي تُستخدم لتحديث مستند في ملف mongoDB جمع.
  2. نحن نحدد معايير البحث الخاصة بالوثيقة التي يجب تحديثها. في حالتنا، نريد العثور على المستند الذي يحمل اسم الموظف "NewEmployee".
  3. نريد بعد ذلك تعيين قيمة اسم الموظف للمستند من "NewEmployee" إلى "Mohan".

إذا قمت الآن بفحص محتويات ملفك MongoDB قاعدة البيانات، ستجد السجل مع معرف الموظف 4 واسم الموظف "Mohan" محدثًا في مجموعة الموظفين.

للتأكد من أن البيانات قد تم تحديثها بشكل صحيح في قاعدة البيانات، تحتاج إلى تنفيذ الإجراء التاليwing أوامر في MongoDB

  1. استخدم "EmployeeDB".
  2. db.Employee.find({Employeeid :4 })

يضمن البيان الأول أنك متصل بقاعدة بيانات EmployDb. البيان الثاني يبحث عن السجل الذي يحتوي على معرف الموظف 4.

  1. حذف المستندات في المجموعة - يمكن حذف المستندات في مجموعة باستخدام طريقة "deleteOne" التي يوفرها MongoDB مكتبة. يوضح مقتطف الكود أدناه كيفية حذف مستند في ملف mongoDB جمع.

باستخدام MongoDB و Node.js

var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';

MongoClient.connect(url, function(err, db) {

    db.collection('Employee').deleteOne(

        {
            "EmployeeName": "Mohan"
        }

    );
}); 

شرح الكود:

  1. نحن هنا نستخدم طريقة "deleteOne" من ملف MongoDB المكتبة، والتي تُستخدم لحذف مستند في ملف mongoDB جمع.
  2. نحن نحدد معايير البحث الخاصة بالوثيقة التي يجب حذفها. في حالتنا، نريد العثور على المستند الذي يحمل اسم الموظف "Mohan" وحذف هذا المستند.

إذا قمت الآن بفحص محتويات ملفك MongoDB قاعدة البيانات، ستجد السجل الذي يحتوي على معرف الموظف 4 واسم الموظف "Mohan" محذوفًا من مجموعة الموظفين.

للتأكد من أن البيانات قد تم تحديثها بشكل صحيح في قاعدة البيانات، تحتاج إلى تنفيذ الإجراء التاليwing أوامر في MongoDB

  1. استخدم "EmployeeDB".
  2. db.Employee.find()

يضمن البيان الأول أنك متصل بقاعدة بيانات EmployDb. يقوم البيان الثاني بالبحث وعرض كافة السجلات في مجموعة الموظفين. هنا يمكنك معرفة ما إذا تم حذف السجل أم لا.

كيفية بناء تطبيق Node Express باستخدام MongoDB لتخزين وتقديم المحتوى

إنشاء تطبيق بمزيج من استخدام Express و MongoDB شائع جدًا في الوقت الحاضر.

عند العمل مع جافا سكريبت التطبيقات المستندة إلى الويب، عادةً ما يُطلق هنا مصطلح MEAN stack.

  • يشير مصطلح مكدس MEAN إلى مجموعة من التقنيات المستندة إلى JavaScript المستخدمة لتطوير تطبيقات الويب.
  • يعني هو اختصار ل MongoDBاكسبريس جي اس, أنجولار جي إس, و Node.js.

ومن ثم، من الجيد دائمًا أن نفهم كيفية استخدام Node.js و MongoDB العمل معًا لتقديم التطبيقات التي تتفاعل مع قواعد البيانات الخلفية.

دعونا نلقي نظرة على مثال بسيط لكيفية استخدام "express" و"MongoDB" معاً. سيستفيد مثالنا من نفس مجموعة الموظفين في ملف MongoDB قاعدة بيانات الموظف.

سنقوم الآن بدمج Express لعرض البيانات على صفحة الويب الخاصة بنا عندما يطلبها المستخدم. عندما يعمل تطبيقنا على Node.js، قد يحتاج المرء إلى التصفح للوصول إلى عنوان URL http://localhost:3000/Employeeid.

عند إطلاق الصفحة، سيتم عرض كافة معرفات الموظف في مجموعة الموظفين. لذلك دعونا نرى مقتطف الشفرة في الأقسام التي ستسمح لنا بتحقيق ذلك.

الخطوة 1) حدد جميع المكتبات التي يجب استخدامها في تطبيقنا، والتي في حالتنا هي كلاً من MongoDB والمكتبة السريعة.

أنشئ تطبيق Node Express باستخدام MongoDB

شرح الكود:

  1. نحن نحدد مكتبتنا "السريعة"، والتي سيتم استخدامها في تطبيقنا.
  2. نحن نحدد ""MongoDB"، والتي سيتم استخدامها في تطبيقنا للاتصال بمكتبتنا MongoDB قاعدة البيانات.
  3. نحن هنا نحدد عنوان URL لقاعدة البيانات الخاصة بنا للاتصال بها.
  4. أخيرًا، نقوم بتحديد سلسلة سيتم استخدامها لتخزين مجموعتنا من معرفات الموظفين والتي يجب عرضها في المتصفح later على.

الخطوة 2) في هذه الخطوة، سنقوم الآن بالحصول على كافة السجلات الموجودة في مجموعة "الموظف" الخاصة بنا والعمل معها وفقًا لذلك.

أنشئ تطبيق Node Express باستخدام MongoDB

شرح الكود:

  1. نحن نقوم الآن بإنشاء مسار لتطبيقنا يسمى "Employeeid". لذلك عندما يتصفح أي شخص http://localhost:3000/Employeeid في تطبيقنا، سيتم تنفيذ مقتطف التعليمات البرمجية المحدد لهذا المسار.
  2. نحن هنا نحصل على كافة السجلات الموجودة في مجموعة "الموظف" الخاصة بنا من خلال الأمر db.collection('Employee').find(). نقوم بعد ذلك بتخصيص هذه المجموعة لمتغير يسمى المؤشر. باستخدام متغير المؤشر هذا، سنكون قادرين على تصفح كافة سجلات المجموعة.
  3. نحن الآن نستخدم الدالة cursor.each() للتنقل عبر جميع سجلات مجموعتنا. لكل سجل، سنقوم بتحديد مقتطف التعليمات البرمجية حول ما يجب فعله عند الوصول إلى كل سجل.
  4. أخيرًا، نرى أنه إذا كان السجل الذي تم إرجاعه ليس فارغًا، فإننا نأخذ الموظف عبر الأمر "item.Employeeid". ما تبقى من الكود هو فقط إنشاء كود HTML مناسب والذي سيسمح بعرض نتائجنا بشكل صحيح في المتصفح.

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

أنشئ تطبيق Node Express باستخدام MongoDB

شرح الكود:

  1. نحن هنا نرسل المحتوى بأكمله الذي تم إنشاؤه في الخطوة السابقة إلى صفحة الويب الخاصة بنا. تتيح لنا المعلمة "res" إرسال المحتوى إلى صفحة الويب الخاصة بنا كرد.
  2. نحن نجعل تطبيق Node.js بأكمله يستمع على المنفذ 3000.

الإخراج:

أنشئ تطبيق Node Express باستخدام MongoDB

من الإخراج،

  • يُظهر بوضوح أنه تم استرداد كافة معرفات الموظف الموجودة في مجموعة الموظفين. وذلك لأننا نستخدم MongoDB سائق للاتصال بقاعدة البيانات واسترداد جميع سجلات الموظفين ثم استخدم "express" لعرض السجلات.

هنا هو رمز للرجوع اليها

var express = require('express');
var app = express();
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';
var str = "";

app.route('/Employeeid').get(function(req, res)

    {
        MongoClient.connect(url, function(err, db) {
            var cursor = db.collection('Employee').find();
            //noinspection JSDeprecatedSymbols
            cursor.each(function(err, item) {

                if (item != null) {
                    str = str + "   Employee id  " + item.Employeeid + "</br>";
                }
            });
            res.send(str);
            db.close();
        });
    });

var server = app.listen(3000, function() {}); 

ملحوظة: ربما تم إهمال cursor.each بناءً على الإصدار الخاص بك MongoDB سائق. يمكنك إلحاق //noinspection JSDeprecatedSymbols قبل cursor.each للتحايل على المشكلة. وبدلاً من ذلك، يمكنك استخدام forEach. يوجد أدناه نموذج التعليمات البرمجية باستخدام forEach

var express = require('express');
var app = express();
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';
var str = "";

app.route('/Employeeid').get(function(req, res) {
   MongoClient.connect(url, function(err, db) {
       var collection = db.collection('Employee');
       var cursor = collection.find({});
       str = "";
       cursor.forEach(function(item) {
           if (item != null) {
                    str = str + "    Employee id  " + item.Employeeid + "</br>";
                }
       }, function(err) {
           res.send(err);
           db.close();
          }
       );
   });
});
var server = app.listen(8080, function() {});

نبذة عامة

  • يتم استخدام Node.js بالتزامن مع NoSQL قواعد البيانات لبناء الكثير من تطبيقات الويب الحديثة. بعض قواعد البيانات الشائعة المستخدمة هي MySQL و MongoDB.
  • إحدى الوحدات الشائعة المستخدمة للعمل معها MongoDB قواعد البيانات هي وحدة تسمى "MongoDB.' يتم تثبيت هذه الوحدة عبر مدير حزم Node.
  • مع MongoDB الوحدة، من الممكن الاستعلام عن السجلات في مجموعة وتنفيذ عمليات التحديث والحذف والإدراج العادية.
  • أخيرًا، إحدى الممارسات الحديثة هي استخدام الإطار السريع مع MongoDB لتقديم تطبيقات العصر الحديث. يمكن لإطار عمل Express الاستفادة من البيانات التي يتم إرجاعها بواسطة ملف MongoDB برنامج التشغيل وعرض البيانات للمستخدم في صفحة الويب وفقًا لذلك.