Retour
MongoDB: Les Opérations

Apprenez à utiliser cette base de données NoSQL populaire pour stocker et manipuler des données de manière efficace.
Vous apprendrez à utiliser la syntaxe de MongoDB pour effectuer des opérations CRUD (create, read, update, delete) sur les collections et les documents.
Déscription
Dans ce cours, vous apprendrez les fondamentaux de MongoDB, l'une des bases de données NoSQL les plus populaires utilisées dans le développement web.
Vous apprendrez également à utiliser la syntaxe de MongoDB pour effectuer des opérations CRUD (create, read, update, delete) sur les collections et les documents.
En suivant ce cours, vous serez en mesure de comprendre les principes de base de MongoDB et d'utiliser cette base de données NoSQL populaire pour stocker et manipuler des données de manière efficace.
Prérequis
Ce cours s'adresse aux débutants et ne nécessite pas de connaissances préalables en base de données.
Toutefois, une connaissance de base de la programmation en Javascript et en lignes de commande est un plus.
- Intiation au langage Javascript.
- BIENTOT: Intiation au langage machine BASH.
Vous devez avoir installé MongoDB sur votre ordinateur avant de commencer ce cours.
Installation et configuration de MongoDB.
Objectifs
-
Comprendre les concepts de base de MongoDB :
Vous apprendrez les concepts fondamentaux de MongoDB, tels que les collections et les documents, ainsi que les différences avec les bases de données relationnelles.
-
Utiliser MongoDB Compass :
Vous apprendrez à utiliser l'interface graphique MongoDB Compass pour interagir avec MongoDB.
Vous découvrirez les fonctionnalités importantes de Compass et vous apprendrez à utiliser la CLI intégrée pour effectuer des opérations de base de données.
-
Comprendre la syntaxe de MongoDB :
Vous apprendrez la syntaxe de base de MongoDB et vous découvrirez comment effectuer des opérations CRUD (create, read, update, delete) sur les collections et les documents.
-
Créer une base de données et des collections :
Vous travaillerez sur un exemple pratique de modélisation de données.
-
Manipuler des données avec MongoDB :
Vous apprendrez à manipuler des données dans MongoDB en utilisant la syntaxe de MongoDB et l'interface graphique MongoDB Compass.
1. Collections et Documents
1. Les Collections
MongoDB stocke les données dans des collections, qui sont similaires aux tables dans les bases de données relationnelles.
Chaque collection contient des documents, l'unité de stockage de données dans MongoDB et est similaire à un enregistrement d'une ligne dans une table SQL.
2. Les Documents
Les documents sont stockés dans les collections et contiennent les champs et les valeurs des données.
Contrairement aux tables SQL, les documents n'ont pas besoin d'avoir des champs communs.
Les documents peuvent contenir des champs différents avec des types de données différents, ce qui offre une grande flexibilité pour stocker les données.
3. Les types de données
MongoDB prend en charge différents types de données pour les champs de document, tels que les chaînes de caractères, les nombres, les dates, les tableaux, les objets imbriqués...
2. MongoDB Compass
1. Connexion à MongoDB Compass
MongoDB Compass est un outil de gestion visuel pour MongoDB, qui permet de se connecter à un serveur MongoDB et de visualiser les données stockées dans les collections.
Pour se connecter à MongoDB Compass, il suffit de renseigner les informations de connexion telles que l'adresse IP, le port, le nom d'utilisateur et le mot de passe.

2. Interface graphique
Une fois connecté, l'interface graphique principale de MongoDB Compass s'affiche, ce qui permet de visualiser les différentes bases de données, collections et documents.
Chacune de ces sections a une fonction spécifique et permet de visualiser et de manipuler les données stockées dans MongoDB.
1. Panneau des Base de donnée
La panneau gauche affiche et permet d'accéder aux différentes bases de données et collections que vous créez.
Lorsque MongoDB est installé, il crée trois bases de données par défaut : admin
, config
et local
.
-
La base de données
admin
est utilisée pour effectuer des opérations d'administration telles que la création de nouveaux utilisateurs, la gestion des autorisations d'accès, la surveillance des performances du serveur et la configuration des réplicas et des clusters de MongoDB. -
La base de données
config
est utilisée pour stocker les informations de configuration pour les clusters MongoDB. -
La base de données
local
est utilisée par MongoDB pour stocker les données temporaires et les journaux d'opérations.
Il est important de noter que ces trois bases de données ne doivent pas être supprimées ou modifiées, sauf si vous savez exactement ce que vous faites, car cela peut entraîner des problèmes avec le fonctionnement de MongoDB.
2. Panneau des documents
Une fois que vous cliquez sur une collection, le panneau centrale affiche tous les documents et leurs contnus.
Il permet d'éffectuer plusieurs opérations pour lire et manipuler les données de manière simple et lisibile.
3. MongoDB Shell
MongoDB Compass fourtnit un terminal nommé Mongosh qui permet d'intéragir avec la base de données grâce a des queries.
Pour ouvrir cette console, vous pouvez cliqué sur >_MONGOSH
en bas à gauche de la fenêtre:

Pour l'instant, nous somme dans la base de données nommée test
, qui n'existe pas.
Il faut savoir que vous pouvez commencer a intéragir avec une base données avant de la créer.
1. Lister des les base de données
Par exemple, pour lister les base de données dans la console, vous pouvez utiliser la commande:
show databases

2. Changer de base de données
Vous pouvez changer de base de données en utilisant la commande: use <nom-bd>
:
use ma-libraire

3. Lister les collection
Pour afficher/lister toutes les collection de la base de données sur laquel vous êtes, vous pouvez utiliser cette commande:
show collections

4. Opérations
La syntaxe de MongoDB est basée sur l'utilisation de commandes Javascript pour interagir avec les collections et les documents.
Les commandes sont appelées des opérations, et sont utilisées pour effectuer des tâches telles que la création, la mise à jour, la lecture et la suppression de données dans la base de données.
La commande doit être envoyée à la base de données à l'aide d'un client MongoDB, tel que la CLI de Compass, un driver MongoDB pour un langage de programmation ou un ORM.
1. Ajouter de documents
Pour créer un nouveau document dans une collection, la commande insertOne
peut être utilisée.
Il est possible de spécifier les valeurs pour chaque champ dans le document à créer:
db.ma_collection.insertOne({ champ1: valeur1, champ2: valeur2 })
Par exemple, pour créer un nouveau document dans une collection books
la commande suivante peut être utilisée :
db.books.insertOne({
title: "Les misérables",
price: 19.99,
date: new Date('1862-03-04'),
online: false,
tags: ['Historique', 'Roman'],
author: {
name: "Victor Hugo",
alive: false
}
})

Vous remarquez que MongoDB à créer un identifiant unique automatiquement lors de la création de documents
Vous pouvez créer plusieurs documents en une seule commande:
db.ma_collection.insertMany([
{ champ1: valeur1, champ2: valeur2 },
{ champ1: valeur3, champ2: valeur4 }
])
Par exemple, pour créer plusieurs document dans une collection books
, la commande suivante peut être utilisée :
db.books.insertMany([{
title: "Harry Potter and the Philosopher's Stone",
price: 10.99,
date: new Date('1997-06-26'),
online: true,
tags: ['Fantasy', 'Young Adult'],
author: {
name: "J.K. Rowling",
alive: true
}
},
{
title: "The Shining",
price: 8.99,
date: new Date('1977-01-28'),
online: true,
tags: ['Horror', 'Thriller'],
author: {
name: "Stephen King",
alive: true
}
},
{
title: "Twenty Thousand Leagues Under the Sea",
price: 12.99,
date: new Date('1870-01-01'),
online: false,
tags: ['Science Fiction', 'Adventure'],
author: {
name: "Jules Verne",
alive: false
}
}
])

2. Lire des documents
Pour lire des documents dans une collection, la commande find
peut être utilisée.
Par exemple, nous pouvons l'utiliser pour récuperer tous les livres de la collection books
:
db.books.find()

Cette commande permet aussi de spécifier des critères de recherche pour sélectionner des documents spécifiques dans la collection.
Il suffit de préciser les critères dans un objet en paramètre a cette fonction:
db.ma_collection.find({ critere1: valeur1, critere2: valeur2 })
Par exemple, pour trouver dans la collection books
tous les livres en ligne, la commande suivante peut être utilisée :
db.books.find({ online: true})
Ou récuperer tous les livre en ligne dont l'auteur est J.K. Rowling
avec :
db.books.find({ author:{ name: "J.K. Rowling" }, online: true})
Vous pouvez aussi récuperer le premièr document trouvé qui satisfait les critère mentionnées avec la commande:
db.ma_collection.findOne({ critere1: valeur1, critere2: valeur2 })
3. mettre à jour des documents
Pour mettre à jour un document dans une collection, la commande updateOne(filters, updates)
peut être utilisée.
Cette commande peut prendre deux paramètres:
- les filtres
filters
: Un objet pour spécifier qu'elle est le document à modifié. - La mise à jour
updates
: Un objet avec l'opérateur$set
permettant de préciser les clés à mettre à jour ainsi que leurs nouvelles valeurs.
db.books.updateOne({ critere1: valeur1 }, { $set:{ champ1: nouvelleValeur1, champ2: nouvelleValeur2 }});
Par exemple pour mettre en ligne le livre portant le titre Les misérables
, vous pouvez utiliser cette commande:
db.books.updateOne({ title: "Les misérables" }, { $set: { online: true } })
4. Supprimer des documents
Pour supprimer un document dans une collection, la commande deleteOne
peut être utilisée.
Cette commande permet de spécifier les critèrse de sélection du document à supprimer
db.books.deleteOne({ critere1: valeur1 });
Par exemple pour supprimer le livre portant le titre Les misérables
, vous pouvez utiliser cette commande:
db.books.updateOne({ title: "Les misérables" })
Conclusion
En conclusion, ce cours sur MongoDB a couvert les bases de la syntaxe pour lire et manipuler les données avec MongoDB.
Dans le prochain article, nous allons aborder les opérateurs et comment les utiliser pour filtrer et manipuler les données de manière plus complexe.