Conexión a MongoDB
Parte de la sección Bases de datos con MongoDB del Journey de Node.js de Coddy. Lección 1 de 18.
Un arreglo en un servidor se pierde cada vez que el servidor se detiene. Una base de datos conserva los datos. MongoDB es un servidor de bases de datos que almacena documentos: objetos similares a JSON. Los documentos están en colecciones, y las colecciones están en una base de datos.
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();El cliente se comunica con el servidor de bases de datos en esa dirección. insertOne almacena un documento. find() devuelve un cursor, un objeto que lee los resultados solo cuando se le solicita, y toArray() los lee todos en un arreglo. Cada llamada va a la base de datos, así que cada una necesita await.
Aquí, Run inicia una instancia vacía de MongoDB en memoria y la pestaña Data muestra sus colecciones. El código inicial agrega tres libros con insertMany, que recibe un arreglo de documentos.
Desafío
Fácil- Añade
GET /books: devuelve todos los documentos de la colecciónbookscomo una matriz JSON.
Pulsa Run y abre la pestaña Data para ver los tres libros. Después, envía GET /books.
Pruébalo tú mismo
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());
// Cada error devuelve { error: message }.
function sendError(res, status, message) {
res.status(status).json({ error: message });
}
app.get('/', (req, res) => {
res.send('Bookshelf API');
});
// Añade GET /books aquí.
app.listen(3000, () => {
console.log('Bookshelf is running on port 3000');
});
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Bases de datos con MongoDB
1Documentos
Conexión a MongoDBInserción de documentos2Modificación de documentos
Actualización de documentosOperadores de actualización