Conectando ao MongoDB
Parte da seção Bancos de dados com MongoDB do Journey de Node.js da Coddy. Lição 1 de 18.
Um array em um servidor se perde sempre que o servidor para. Um banco de dados mantém os dados. MongoDB é um servidor de banco de dados que armazena documentos: objetos semelhantes a JSON. Os documentos ficam em coleções, e as coleções ficam em um banco de dados.
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();O cliente se comunica com o servidor de banco de dados nesse endereço. insertOne armazena um documento. find() retorna um cursor, um objeto que lê os resultados somente quando solicitado, e toArray() lê todos eles em um array. Cada chamada acessa o banco de dados, então cada uma precisa de await.
Aqui, Run inicia um MongoDB vazio na memória, e a aba Data mostra suas coleções. O código inicial insere três livros usando insertMany, que recebe um array de documentos.
Desafio
Fácil- Adicione
GET /books: ele retorna todos os documentos da coleçãobookscomo um array JSON.
Clique em Run e abra a guia Data para ver os três livros. Em seguida, envie GET /books.
Experimente você mesmo
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());
// Todo erro retorna { error: message }.
function sendError(res, status, message) {
res.status(status).json({ error: message });
}
app.get('/', (req, res) => {
res.send('Bookshelf API');
});
// Adicione GET /books aqui.
app.listen(3000, () => {
console.log('Bookshelf is running on port 3000');
});
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Bancos de dados com MongoDB
1Documentos
Conectando ao MongoDBInserindo documentos