Accéder au contenu principal

Tutoriel NoSQL complet avec MongoDB

Découvrez les bases de données NoSQL : pourquoi NoSQL, en quoi elles diffèrent des bases relationnelles, leurs types, et concevez votre propre base NoSQL avec MongoDB.
Actualisé 19 sept. 2026  · 9 min lire

Explorer avec l’IA

ChatGPTClaudePerplexity

À l’heure où les volumes de données explosent, les bases de données sont essentielles pour stocker, gérer et analyser de grandes quantités d’informations. On distingue globalement deux familles : les bases SQL et les bases NoSQL.

Les bases de données SQL utilisent un format structuré, où les données sont organisées en tables avec des schémas. À l’inverse, les bases de données NoSQL offrent des schémas flexibles pour stocker des données semi-structurées et non structurées. Elles fournissent l’infrastructure nécessaire pour gérer et exploiter les volumes massifs de données produits dans le paysage numérique actuel.

Ce guide complet couvre les fondamentaux des bases NoSQL, leurs différents types avec des exemples du marché. Une fois ces notions acquises, nous plongerons dans MongoDB, une base NoSQL populaire, pour apprendre à réaliser des opérations CRUD (Create, Retrieve, Update, Delete).

Qu’est-ce que NoSQL ?

NoSQL signifie « Not Only SQL » et a été conçu pour pallier certaines limites des bases relationnelles. Celles-ci suivent une structure rigide, un format tabulaire et utilisent SQL (Structured Query Language) pour la manipulation des données.

Les bases NoSQL proposent une approche plus flexible pour le stockage de données semi-structurées et non structurées.

Leur principal atout est de pouvoir gérer de grands volumes de données aux structures variées. Sans schéma imposé, elles gagnent en agilité et en scalabilité.

Ces avantages s’accompagnent de compromis : une cohérence plus faible et un support limité des requêtes complexes. Malgré cela, elles sont largement adoptées pour leurs bénéfices et viennent en complément des bases SQL.

Vous pouvez en savoir plus sur les principales différences entre SQL et NoSQL ainsi que des conseils pour choisir l’une ou l’autre dans un tutoriel dédié.

Types de bases de données NoSQL

Pour répondre à des cas d’usage variés, les bases NoSQL utilisent plusieurs modèles de données pour organiser et accéder aux informations. Voici 4 types courants de bases NoSQL.

  1. Clé–valeur : la forme la plus simple. Les données sont stockées sous forme de paires clé/valeur et se récupèrent via la clé. Exemples : Redis et Amazon DynamoDB.
  2. Orientées colonnes : les données sont organisées par colonnes plutôt que par lignes, ce qui facilite la récupération par colonnes. Apache Cassandra, HBase et Google Bigtable sont orientées colonnes.
  3. Orientées graphes : les données sont stockées sous forme de graphes composés de nœuds, d’arêtes et de propriétés. Neo4j et Amazon Neptune sont des bases graphe populaires.
  4. Orientées documents : les données sont stockées sous forme de documents de type JSON. La structure peut varier et contenir des données imbriquées. C’est un type très répandu. Exemples : MongoDB et CouchDB.

Pour approfondir ces différents types, consultez notre tutoriel NoSQL Databases: What Every Data Scientist Needs to Know.

Après avoir vu ce qu’est NoSQL et ses principaux types, passons à la pratique.

Tutoriel NoSQL : concevoir une base NoSQL pour une plateforme de blog

Rien de tel qu’un exemple concret pour assimiler et tester les concepts abordés. Suivez ce tutoriel NoSQL pas à pas.

Imaginons que vous souhaitiez créer votre propre plateforme de blog. Vous voulez publier des articles, autoriser les commentaires et les maintenir à jour. Sachant que les données sont peu ou pas structurées, vous comprenez qu’une base NoSQL comme MongoDB convient à ce cas d’usage.

MongoDB est une base NoSQL open source. Au lieu de tables, elle stocke les données dans des documents de type JSON. Cela facilite la représentation de structures et de relations complexes. Elle gère aisément différents types de données — texte, nombres, images — comme on en trouve fréquemment dans les blogs.

Commençons par installer MongoDB sur votre machine.

1. Installer MongoDB

L’installation de MongoDB est assez simple. Téléchargez et installez-le depuis le site officiel de MongoDB. Les étapes varient selon le système d’exploitation ; reportez-vous aux instructions d’installation pour votre OS dans la documentation officielle.

Après l’installation, lancez MongoDB. Ouvrez simplement le terminal et saisissez la commande adaptée à votre système :

// Linux
sudo systemctl start mongod

//Mac OS
brew services start mongodb-community@7.0

Vous devriez voir un message « Successfully started », comme ci-dessous.

Output: Starting MongoDB

Sortie : démarrage de MongoDB. (Cette image et toutes les suivantes sont de l’auteur)

L’installation inclut le shell MongoDB, mongosh, que vous pouvez utiliser pour interagir avec la base. Aucune installation supplémentaire n’est nécessaire.

Démarrez le shell MongoDB en exécutant la commande suivante dans votre terminal :

mongosh

L’exécution de mongosh affiche une sortie confirmant la connexion à votre base.

Start the MongoDB shell

Démarrer le shell MongoDB.

Avec MongoDB installé, passons à la définition de notre modèle de données.

2. Définir le modèle de données

Nous allons créer une base appelée « blog » et deux collections, « posts » et « comments ». La collection « posts » contiendra les articles de blog et « comments » stockera les commentaires associés.

Chaque document d’article comportera un titre, un contenu, un auteur et une date de création ; chaque document de commentaire inclura le contenu, l’auteur et l’ID du post associé.

Pour lister toutes les bases existantes, exécutez show dbs dans le shell. Si vous utilisez MongoDB pour la première fois, vous verrez la sortie ci-dessous.

Lister les bases existantes.

Par défaut, vous vous trouvez dans la base « test ». Toutefois, elle n’est réellement créée qu’au moment d’insérer un document dans une collection.

Pour créer une nouvelle base, exécutez use <database_name>.

Dans notre exemple, nous utilisons « blog » comme nom de base. Exécutez use blog pour la créer. Comme indiqué ci-dessus, show dbs n’affichera pas la nouvelle base avant l’insertion d’une collection. Exécutez donc les commandes ci-dessous pour créer une collection.

// create database
use blog

// create collection
db.createCollection("posts")
db.createCollection("comments")

La commande use blog bascule de la base « test » vers « blog ».

Sortie : création de la base et des collections.

Après avoir créé les collections, vous pouvez vérifier avec show dbs.

Liste des bases.

Nous avons bien créé la base et les collections.

3. Mettre en œuvre les opérations CRUD

MongoDB prend en charge quatre opérations CRUD (Create, Read, Update, Delete) principales pour interagir avec les données :

  1. Create : pour créer un document, on l’insère dans une collection avec insertOne() ou insertMany(). Les documents peuvent contenir n’importe quelle donnée JSON valide, ce qui permet des schémas flexibles.
  2. Read : pour lire des données, utilisez la méthode find(). Les requêtes filtrent les documents selon des critères et renvoient les résultats.
  3. Update : pour mettre à jour des documents, utilisez updateOne() ou updateMany(). Ces méthodes permettent une manipulation souple des données.
  4. Delete : pour supprimer des documents d’une collection, utilisez deleteOne() ou deleteMany(), en fonction de critères (par exemple une valeur de champ).

Maintenant que nous avons vu les commandes, mettons-les en pratique avec notre cas d’usage de blog.

4. Créer un article de blog

Pour insérer des documents dans MongoDB, deux méthodes existent :

  1. insertOne() : insère un document à la fois
  2. insertMany() : insère plusieurs documents en une seule opération.

Utilisons les deux pour ajouter des articles à la base. Dans le code ci-dessous, nous créons des documents dans la collection « posts ». Chaque document comporte un titre, un contenu, un auteur et une date de création.

// use insertOne() method to insert one document to the "posts" collection
db.posts.insertOne({
   title: "Introduction to NoSQL with MongoDB",
   content: "MongoDB is a NoSQL database that stores data in JSON format",
   author: "Arunn Thevapalan",
   createdAt: new Date()
})

// array of blog post documents
var postsData = [
   {
       title: "Getting Started with MongoDB",
       content: "Learn the basics of MongoDB",
       author: "Arunn Thevapalan",
       createdAt: new Date()
   },
   {
       title: "Advanced MongoDB Techniques",
       content: "Explore advanced features of MongoDB",
       author: "Jim Murphy",
       createdAt: new Date()
   }
];

// use insertMany() to insert multiple documents
db.posts.insertMany(postsData);

Cette sortie indique que le serveur MongoDB a bien reçu et traité la requête insertOne.

Sortie : insertion d’un document dans une collection.

De même, la sortie ci-dessous confirme le succès de la requête insertMany.

Sortie : insertion de plusieurs documents dans une collection.

Après l’opération Create, passons à l’opération Read.

5. Interroger les articles

Nous pouvons utiliser la méthode find() pour récupérer des données des collections. Pour récupérer les articles ajoutés dans « posts », exécutez :

db.posts.find()

La méthode find renvoie tous les documents de la collection « posts ». La sortie ci-dessous montre ceux insérés à l’étape précédente.

Sortie : récupération de documents depuis une collection.

6. Ajouter un commentaire à un article

Pour ajouter des commentaires à un article, insérez un document dans la collection « comments ». Les commentaires étant associés aux articles, nous conservons une référence à l’ID du post.

// use an object id from any of the above entries
var postId = ObjectId("664bfc27f74ef93812b2179e")

// insert one comment
db.comments.insertOne({
   postId: postId,
   content: "Informative article!",
   author: "Anne Smith",
   createdAt: new Date()
})

La sortie confirme que le serveur MongoDB a reçu et traité la requête.

Sortie : création d’un document faisant référence à un autre.

7. Requêter les commentaires d’un article

Pour récupérer les commentaires associés à un article donné, utilisez find() avec un filtre :

// retrieve the above comment

db.comments.find({postId: postId})

La sortie suivante affiche le commentaire inséré à l’étape précédente.

Sortie : trouver un document avec une requête find.

Une fois les articles créés, les utilisateurs souhaiteront les mettre à jour. Voyons comment modifier des documents existants.

8. Mettre à jour un article

Comme pour l’insertion, la mise à jour peut se faire individuellement ou en masse.

  1. updateOne() : met à jour un seul document
  2. updateMany() : met à jour plusieurs documents en une fois.

Essayons de changer le titre « Introduction to NoSQL with MongoDB » en « Absolute Beginner Guide to NoSQL with MongoDB ».

Comme nous connaissons l’ID du post d’une étape précédente, exécutez le code ci-dessous pour modifier le titre. Veillez à remplacer postId par l’ID de votre document.

var postId = ObjectId("664bfc27f74ef93812b2179e");

db.posts.updateOne(
   { _id: postId },
   { $set: { title: "Absolute Beginner guide to NoSQL with MongoDB"} }
);

// verify update
db.posts.find({_id: postId})

La sortie indique que la requête a réussi : 1 document correspondant trouvé et modifié.

Sortie : mise à jour d’un document.

9. Supprimer un article

Pour supprimer un article, utilisez deleteOne(). Comme précédemment, vous pouvez recourir à deleteMany() pour en supprimer plusieurs à la fois.

var postId = ObjectId("664bfc27f74ef93812b2179e");

// delete post
db.posts.deleteOne({ _id: postId });

// verify deletion -> no output
db.posts.find({_id: postId})

La sortie confirme la suppression avec succès.

Output: Delete a document from a collection

Sortie : suppression d’un document d’une collection

Évidemment, nous avons simplifié la conception d’une plateforme de blog, qui est en général plus complexe avec d’autres fonctionnalités comme les mises en avant, les likes, les applaudissements, les recommandations, etc. Mais toutes reposent sur les opérations CRUD vues ci-dessus. À vous maintenant d’explorer et d’expérimenter d’autres fonctionnalités sur cette base.

Conclusion

Ce tutoriel vous a présenté les bases de données NoSQL. Nous avons commencé par les concepts clés : définition, différences avec les bases relationnelles et principaux types.

Nous avons ensuite abordé MongoDB, une base orientée documents largement utilisée. Enfin, nous avons mis les mains dans le cambouis avec un exemple simple pour concevoir la base d’un blog.

Il est normal de buter lors de la conception d’une base pour un nouveau cas d’usage. Nous vous recommandons de consulter la documentation officielle pour les fonctions à jour et des exemples.

Voici quelques cours et tutoriels pour aller plus loin si vous souhaitez approfondir NoSQL.


Arunn Thevapalan's photo
Author
Arunn Thevapalan
LinkedIn
Twitter

En tant que data scientist senior, je conçois, développe et déploie des solutions d'apprentissage automatique à grande échelle pour aider les entreprises à prendre de meilleures décisions basées sur les données. En tant que rédacteur spécialisé dans la science des données, je partage mes apprentissages, mes conseils de carrière et des tutoriels pratiques approfondis.

Sujets
SQL

Continuez à apprendre avec DataCamp

Cours

Introduction à NoSQL

4 h
10.7K
Afficher les détailsRight Arrow
Commencer Le Cours
Voir plusRight Arrow