Menu
CoddyTech

الاتصال بـ MongoDB

جزء من قسم قواعد البيانات باستخدام MongoDB في رحلة Node.js على Coddy. الدرس 1 من 18.

تُفقَد المصفوفة الموجودة على الخادم كلما توقّف الخادم. تحتفظ قاعدة البيانات بالبيانات. MongoDB خادم قواعد بيانات يخزّن المستندات: كائنات شبيهة بـ JSON. توجد المستندات ضمن مجموعات، وتوجد المجموعات ضمن قاعدة بيانات.

import { MongoClient } from 'mongodb';

const client = new MongoClient('mongodb://localhost:27017');
const movies = client.db('cinema').collection('movies');

await movies.insertOne({ title: 'Alien', year: 1979 });
const all = await movies.find().toArray();

يتصل العميل بخادم قاعدة البيانات على ذلك العنوان. تخزّن insertOne مستندًا واحدًا. تعطي find() مؤشّرًا، وهو كائن يقرأ النتائج عند طلب ذلك فقط، وتقرأ toArray() النتائج كلها في مصفوفة. يستدعي كل استدعاء قاعدة البيانات، لذا يحتاج كل منها إلى await.

هنا، يبدأ Run نسخة MongoDB فارغة في الذاكرة، وتعرض علامة التبويب Data مجموعاتها. يضيف الإعداد الأولي ثلاثة كتب باستخدام insertMany، التي تأخذ مصفوفة من المستندات.

challenge icon

التحدي

سهل
  • أضف GET /books: يعرض كل مستندات مجموعة books على هيئة مصفوفة JSON.

اضغط على Run وافتح علامة التبويب Data لرؤية الكتب الثلاثة. ثم أرسل GET /books.

جرّب بنفسك

import express from 'express';
import { MongoClient } from 'mongodb';

const client = new MongoClient('mongodb://localhost:27017');
const db = client.db('shelf');
const books = db.collection('books');

await books.insertMany([
    { title: 'Dune', author: 'Frank Herbert', year: 1965, isbn: '9780441013593', genre: 'scifi' },
    { title: 'Kindred', author: 'Octavia E. Butler', year: 1979, isbn: '9780807083697', genre: 'scifi' },
    { title: 'Emma', author: 'Jane Austen', year: 1815, isbn: '9780141439587', genre: 'classic' },
]);

const app = express();
app.use(express.json());

// تُرجع جميع الأخطاء { error: message }.
function sendError(res, status, message) {
    res.status(status).json({ error: message });
}

app.get('/', (req, res) => {
    res.send('Bookshelf API');
});

// أضف GET /books هنا.

app.listen(3000, () => {
    console.log('Bookshelf is running on port 3000');
});
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس قواعد البيانات باستخدام MongoDB