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