Node.js MongoDB البرنامج التعليمي مع أمثلة

⚡ ملخص ذكي

Node.js MongoDB تتيح عملية التكامل لتطبيق Node الاتصال بقاعدة بيانات NoSQL، وتشغيل عمليات CRUD، وعرض السجلات الحية من خلال مسارات Express، باستخدام برنامج تشغيل mongodb الأصلي جنبًا إلى جنب مع Mongoose لنمذجة البيانات القائمة على المخطط.

  • 🗄️ اختيار قاعدة البيانات: تتصل Node.js بمحركات قواعد البيانات العلائقية مثل MySQL ومحركات NoSQL مثل MongoDB من خلال وحدات npm مخصصة.
  • 📦 إعداد برنامج التشغيل: قم بتشغيل الأمر npm install mongodb لإضافة برنامج تشغيل MongoClient الأصلي إلى مشروع Node.js.
  • ؟؟؟؟ توصيل: افتح رابط قاعدة البيانات باستخدام MongoClient.connect ودالة رد نداء، أو نمط async/await الحديث client.connect().
  • 🔍 قراءة البيانات: استخدم الدالة find() والمؤشر للتكرار عبر كل مستند داخل MongoDB جمع.
  • ✍️ كتابة البيانات: استخدم insertOne و updateOne و deleteOne لإضافة المستندات وتعديلها وإزالتها بأمان.
  • 🧩 السائق مقابل مصمم المعدات الأصلية: اختر برنامج تشغيل mongodb خفيف الوزن للاستعلامات الخام أو Mongoose عندما يكون التحقق من صحة المخطط مهمًا.
  • 🌐 التكامل السريع: خطوط بارك إكسبريس مع MongoDB تستعلم عن ذلك بحيث يعيد طلب المتصفح سجلات قاعدة البيانات المباشرة.

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

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

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

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

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

في عمل MySQLالوحدة المطلوبة تسمى "mysql". MongoDBيمكن للمطورين تثبيت الإصدار الأصلي الرسمي mongodb برنامج التشغيل، وهو الحزمة المستخدمة في جميع نماذج التعليمات البرمجية في هذه المقالة، أو مكتبة قائمة على المخطط مثل النمس بمجرد أن يحتاج التطبيق إلى مزيد من التنظيم.

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

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

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

MongoDB مقارنة بين برنامج التشغيل الأصلي وبرنامج Mongoose في Node.js

قد تكون أسماء الوحدات المذكورة أعلاه مربكة، لأن Node.js يوفر طريقتين مختلفتين للتواصل مع MongoDB: السكان الأصليون mongodb السائق و النمس مكتبة نمذجة بيانات الكائنات (ODM). تستخدم جميع نماذج التعليمات البرمجية اللاحقة في هذه المقالة برنامج التشغيل الأصلي، المثبت مع تثبيت mongodb باستخدام npm ويمكن الوصول إليها من خلال MongoClientيُغلّف Mongoose نفس المُشغّل ويُضيف تعريفات المخططات، والتحقق من الصحة، وطرق النماذج القابلة لإعادة الاستخدام، مما يُناسب التطبيقات الكبيرة التي تحتاج إلى بنية بيانات مُتوقعة عبر العديد من المجموعات. إن فهم الفرق مُسبقًا يُجنّبك الارتباك عند تثبيت الحزم أو قراءة ملفات Node.js الأخرى. MongoDB أمثلة متاحة عبر الإنترنت. يقارن الجدول أدناه بين الخيارين حتى يتمكن المطور من اختيار الأداة المناسبة لمشروع معين.

البعد برنامج تشغيل MongoDB الأصلي النمس
التركيب تثبيت mongodb باستخدام npm npm install mongoose
تطبيق المخطط لا شيء، تظل المستندات مرنة مُعرَّف من خلال كائن مخطط
منحنى التعلم أقل، أقرب إلى الخام MongoDB الاستفسارات يضيف Higher طبقة API خاصة به
أفضل ل البرامج النصية الصغيرة والتعليمات البرمجية الحساسة للأداء تطبيقات أكبر ذات نماذج بيانات متسقة

تلميح: التزم باستخدام برنامج التشغيل الأصلي أثناء تعلم الأساسيات 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 الوحدة، قم بتشغيل الأمر أدناه

تثبيت mongodb باستخدام npm

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

Code التفسير:

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

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

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

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);

});
});

Code التفسير:

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

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

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

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

الإخراج:

من الإخراج،

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

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

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

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

Code التفسير:

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

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

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

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

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

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

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

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"
}
});
});

Code التفسير:

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

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

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

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

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

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

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

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

db.collection('Employee').deleteOne(

{
"EmployeeName": "Mohan"
}

);
});

Code التفسير:

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

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

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

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

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

البرمجة غير المتزامنة الحديثة / الانتظار MongoDB الاتصالات في Node.js

استخدم MongoClient.connect(url, callback) النمط المستخدم في جميع أنحاء هذه المقالة يتطابق مع MongoDB إصدار برنامج تشغيل Node.js الذي كان مُستخدمًا عند كتابة الأمثلة أعلاه. لا تزال الإصدارات الحديثة من برنامج التشغيل تدعم أسلوب الاستدعاء هذا، ولكن معظم المشاريع الجديدة تُفضل الآن استخدام الوعود و async/await، لأن الكود الناتج يُقرأ من الأعلى إلى الأسفل دون الحاجة إلى استدعاءات متداخلة. تُعيد الخطوات التالية كتابة نفس اتصال Employee باستخدام الصيغة الحديثة.

  1. أنشئ نسخة واحدة من MongoClient خارج أي دالة، وقم بتمرير سلسلة الاتصال مرة واحدة، على سبيل المثال const client = new MongoClient(url);
  2. اتصل انتظر اتصال العميل () داخل دالة غير متزامنة لفتح الاتصال بدلاً من تمرير دالة رد نداء.
  3. احصل على قاعدة البيانات باستخدام client.db('EmployeeDB') بدلاً من الاعتماد على الكائن المُعاد داخل دالة رد الاتصال.
  4. قم بتشغيل الاستعلامات باستخدام ترقب، على سبيل المثال await db.collection('Employee').find().toArray()، والتي تُرجع مصفوفة مباشرة بدلاً من الحاجة إلى استدعاء مؤشر.
  5. أغلق الاتصال مع انتظر إغلاق العميل() داخل كتلة finally بحيث يتم تشغيلها دائمًا، حتى لو أدى الاستعلام إلى ظهور خطأ.
const { MongoClient } = require('mongodb');

const url = 'mongodb://localhost:27017';
const client = new MongoClient(url);

async function run() {
try {
await client.connect();
const db = client.db('EmployeeDB');
const employees = await db.collection('Employee').find().toArray();
console.log(employees);
} finally {
await client.close();
}
}

run().catch(console.error);

يتصل كلا الأسلوبين بقاعدة بيانات EmployeeDB نفسها ومجموعة Employee نفسها، لذا لا داعي لإعادة كتابة التعليمات البرمجية الحالية القائمة على ردود الاتصال فورًا. يمكن للأسلوبين التعايش أثناء عملية نقل المشروع تدريجيًا، ويعتمد الاختيار في الغالب على أيهما MongoDB تم تثبيت إصدار برنامج تشغيل Node.js بالفعل في ملف package.json.

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

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

عند العمل مع Javaسيناريو في تطبيقات الويب، عادةً ما يسمع المرء مصطلح MEAN stack.

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

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

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

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

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

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

Code التفسير:

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

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

Code التفسير:

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

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

Code التفسير:

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

الإخراج:

من الإخراج،

  • يُظهر بوضوح أنه تم استرداد كافة معرفات الموظف الموجودة في مجموعة الموظفين. وذلك لأننا نستخدم 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() {});

الأسئلة الشائعة

استبدل سلسلة الاتصال المحلية بسلسلة Atlas SRV من مربع حوار الاتصال بالمجموعة، على سبيل المثال mongodb+srv://user:password@cluster.mongodb.net/EmployeeDB، ثم مررها إلى MongoDB أطلس تمامًا كما يتوقع MongoClient.

تجنب تضمين السلسلة النصية في شفرة المصدر عن طريق تحميلها من متغير بيئي باستخدام حزمة مثل دوتنفثم أضف ملف .env إلى ملف .gitignore حتى لا تصل بيانات الاعتماد إلى نظام التحكم في الإصدار.

لا. مجاني MongoDB تعمل مجموعة Atlas مع كل مثال هنا؛ يتغير فقط سلسلة الاتصال، لذا فإن الاتصال المحلي MongoDB تثبيت خادم المجتمع اختياري وليس إلزاميًا.

نعم، أدوات مثل مساعد الطيار جيثب يمكن صياغة استدعاءات find أو insertOne أو updateOne بسرعة، ولكن يجب على المطور مع ذلك التحقق من أسماء الحقول وإصدار برنامج التشغيل ومعالجة الاتصال قبل تشغيل الكود الذي تم إنشاؤه.

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

تلخيص هذه التدوينة بـ: