إدراج المستندات
جزء من قسم قواعد البيانات باستخدام MongoDB في رحلة Node.js على Coddy. الدرس 2 من 18.
يرسل العميل كتابًا جديدًا في متن طلب POST، وعلى الخادم تخزينه وإخبار العميل بما خزّنه.
لكل مستند حقل _id، وهو مفتاحه الفريد في المجموعة. عندما لا يحتوي الكائن الذي تُدرجه على هذا الحقل، تنشئه insertOne وتكتبه أيضًا في الكائن نفسه. لا تُرجع الاستدعاءة سوى acknowledged وinsertedId، ولا تُرجع المستند نفسه مطلقًا.
const movie = { title: 'Alien', year: 1979 };
const result = await movies.insertOne(movie);
console.log(result); // { acknowledged: true, insertedId: new ObjectId('66f1...') }
console.log(movie._id); // المعرّف نفسهإذًا، بعد الإدراج، يكون الكائن الذي مرّرته هو المستند المخزّن، بما في ذلك _id: وهذا ما يريد العميل استلامه.
التحدي
سهل- يخزّن
POST /booksجسم JSON ككتاب جديد. - يردّ بالرمز
201مع الكتاب المخزّن، بما في ذلك_idالخاص به.
أرسل POST /books مع { "title": "Beloved", "author": "Toni Morrison", "year": 1987, "isbn": "9781400033416", "genre": "literary" }. ثم أرسل 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');
});
app.get('/books', async (req, res) => {
const list = await books.find().toArray();
res.json(list);
});
app.listen(3000, () => {
console.log('Bookshelf is running on port 3000');
});
جميع دروس قواعد البيانات باستخدام MongoDB
1المستندات
الاتصال بـ MongoDBإدراج المستندات