Menu
CoddyTech

Connexion à MongoDB

Fait partie de la section Bases de données avec MongoDB du Journey Node.js de Coddy. Leçon 1 sur 18.

Un tableau dans un serveur disparaît chaque fois que le serveur s’arrête. Une base de données conserve les données. MongoDB est un serveur de base de données qui stocke des documents : des objets semblables à du JSON. Les documents se trouvent dans des collections, et les collections dans une base de données.

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();

Le client communique avec le serveur de base de données à cette adresse. insertOne stocke un document. find() renvoie un curseur, un objet qui lit les résultats uniquement lorsqu’on le lui demande, et toArray() les lit tous dans un tableau. Chaque appel accède à la base de données, donc chacun nécessite await.

Ici, Run démarre une instance MongoDB vide en mémoire et l’onglet Data affiche ses collections. Le code de démarrage insère trois livres avec insertMany, qui prend un tableau de documents.

challenge icon

Défi

Facile
  • Ajoute GET /books : cette route renvoie tous les documents de la collection books sous forme de tableau JSON.

Clique sur Run, puis ouvre l’onglet Data pour voir les trois livres. Ensuite, envoie GET /books.

Essayez vous-même

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());

// Chaque erreur renvoie { error: message }.
function sendError(res, status, message) {
    res.status(status).json({ error: message });
}

app.get('/', (req, res) => {
    res.send('Bookshelf API');
});

// Ajoutez GET /books ici.

app.listen(3000, () => {
    console.log('Bookshelf is running on port 3000');
});
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Bases de données avec MongoDB