كيفية استخدام MongoDB مع Node.js

سأوضح لك في هذا البرنامج التعليمي كيفية التفاعل مع قاعدة بيانات MongoDB من Node.js

إذا كنت غير مألوفMongoDBراجع دليلنا حول أساسياته وكيفية تثبيته واستخدامه :)

سنستخدم المسؤولmongodb npmصفقة. إذا كان لديك بالفعل مشروع Node.js تعمل عليه ، فقم بتثبيته باستخدام

npm install mongodb

إذا بدأت من الصفر ، فأنشئ مجلدًا جديدًا باستخدام ملفطرفيةو اهربnpm init -yلبدء مشروع Node.js جديد ، ثم قم بتشغيل ملفnpm install mongodbيأمر.

الاتصال بـ MongoDB

أنت تطلبmongodbالحزمة وتحصل على كائن MongoClient منها.

const mongo = require('mongodb').MongoClient

قم بإنشاء عنوان URL لخادم MongoDB. إذا كنت تستخدم MongoDB محليًا ، فسيكون عنوان URL مثلmongodb://localhost:27017، مثل27017هو المنفذ الافتراضي.

const url = 'mongodb://localhost:27017'

ثم استخدم ملفmongo.connect()طريقة للحصول على المرجع إلى عميل مثيل MongoDB:

mongo.connect(url, {
    useNewUrlParser: true,
    useUnifiedTopology: true
  }, (err, client) => {
  if (err) {
    console.error(err)
    return
  }
  //...
})

الآن يمكنك تحديد قاعدة بيانات باستخدام امتدادclient.db()طريقة:

const db = client.db('kennel')

إنشاء والحصول على مجموعة

يمكنك الحصول على مجموعة باستخدام ملفdb.collection()طريقة. إذا لم تكن المجموعة موجودة بعد ، فسيتم إنشاؤها.

const collection = db.collection('dogs')

إدراج البيانات في وثيقة مجموعة

أضف إلى app.js الوظيفة التالية التي تستخدم ملفinsertOne()طريقة لإضافة كائنdogsمجموعة.

collection.insertOne({name: 'Roger'}, (err, result) => {

})

يمكنك إضافة عناصر متعددة باستخدامinsertMany()، تمرير مصفوفة كمعامل أول:

collection.insertMany([{name: 'Togo'}, {name: 'Syd'}], (err, result) => {

})

ابحث عن جميع المستندات

استخدم الfind()طريقة على المجموعة للحصول على جميع المستندات المضافة إلى المجموعة:

collection.find().toArray((err, items) => {
  console.log(items)
})

ابحث عن مستند محدد

قم بتمرير كائن إلىfind()طريقة لتصفية المجموعة بناءً على ما تحتاج إلى استرداده:

collection.find({name: 'Togo'}).toArray((err, items) => {
  console.log(items)
})

إذا كنت تعلم أنك ستحصل على عنصر واحد ، فيمكنك تخطيtoArray()تحويل المؤشر عن طريق الاتصالfindOne():

collection.findOne({name: 'Togo'}, (err, item) => {
  console.log(item)
})

قم بتحديث مستند موجود

استخدم الupdateOne()طريقة تحديث المستند:

collection.updateOne({name: 'Togo'}, {'$set': {'name': 'Togo2'}}, (err, item) => {
  console.log(item)
})

احذف مستند

استخدم الdeleteOne()طريقة حذف مستند:

collection.deleteOne({name: 'Togo'}, (err, item) => {
  console.log(item)
})

إغلاق الاتصال

بمجرد الانتهاء من العمليات ، يمكنك الاتصال بـclose()الطريقة على كائن العميل:

client.close()

استخدم الوعود أو غير المتزامن / انتظر

لقد نشرت كل هذه الأمثلة باستخدامأتصل مرة أخرىبناء الجملة. يدعم API هذاوعودغير متزامن / انتظار) أيضا.

على سبيل المثال هذا

collection.findOne({name: 'Togo'}, (err, item) => {
  console.log(item)
})

يمكن استخدامها مع الوعود:

collection.findOne({name: 'Togo'})
  .then(item => {
    console.log(item)
  })
  .catch(err => {
  console.error(err)
  })

أو غير متزامن / انتظار:

const find = async () => {
  try {
    const item = await collection.findOne({name: 'Togo'})
  } catch(err => {
  console.error(err)
  })
}

find()

تحميل مجانيكتيب Node.js


المزيد من دروس العقدة: