Dokumente einfügen
Teil des Abschnitts Datenbanken mit MongoDB der Node.js-Journey von Coddy. Lektion 2 von 18.
Ein Client sendet ein neues Buch im POST-Body, und der Server muss es speichern und mitteilen, was er gespeichert hat.
Jedes Dokument hat ein Feld _id, seinen eindeutigen Schlüssel in der Collection. Wenn das Objekt, das du einfügst, keines hat, erstellt insertOne eines und schreibt es auch in dasselbe Objekt. Der Aufruf liefert nur acknowledged und insertedId zurück, niemals das Dokument selbst.
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); // dieselbe IDNach dem Einfügen ist das übergebene Objekt also das gespeicherte Dokument, einschließlich _id: Genau das möchte ein Client zurückbekommen.
Aufgabe
EinfachPOST /booksspeichert den JSON-Body als neues Buch.- Es antwortet mit
201und dem gespeicherten Buch einschließlich seiner_id.
Sende POST /books mit { "title": "Beloved", "author": "Toni Morrison", "year": 1987, "isbn": "9781400033416", "genre": "literary" }. Sende anschließend GET /books und sieh dir den Tab „Data“ an.
Probier es selbst
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());
// Jeder Fehler gibt { error: message } zurück.
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');
});
Alle Lektionen in Datenbanken mit MongoDB
1Dokumente
Verbindung mit MongoDB herstellenDokumente einfügen