Menu
CoddyTech

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.

challenge icon

Desafio

Fácil
  • Adicione GET /books: ele retorna todos os documentos da coleção books como 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');
});
quiz iconTeste seus conhecimentos

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