Geekflare est soutenu par son public. Nous pouvons percevoir des commissions d'affiliation sur les liens d'achat présents sur ce site.
En Base de données Dernière mise à jour : 25 septembre 2023
Partager sur :
Invicti Web Application Security Scanner - la seule solution qui offre une vérification automatique des vulnérabilités avec Proof-Based Scanning™.

Découvrez ce qu'est MongoDB, le guide d'installation et le fonctionnement de base

MongoDB NoSQL est plus que jamais d'actualité. En avez-vous une bonne compréhension ?

Ne vous inquiétez pas si ce n'est pas le cas, ce qui suit vous aidera

Introduction

Avec le changement de paradigme du site web vers un contenu dynamique, la demande de base de données No-SQL a augmenté. Cela a donné naissance à de nombreuses bases de données No-SQL telles que MongoDB

mongodb

Classée parmi les bases de données No-SQL, MongoDB est une base de données basée sur des documents qui stocke les données sous forme de documents JSON avec un identifiant autogénéré pour chaque document.

Une base de données No-SQL est une base de données dont la structure des tables n'est pas fixe, contrairement aux bases de données SQL structurées. MongoDB stocke les données sous la forme de chaînes JSON, indépendamment du nombre d'attributs ou des noms d'attributs dans une colonne spécifique

Cela permet aux développeurs d'apporter rapidement des modifications aux entités sans qu'il soit nécessaire de modifier la base de données

Installation de MongoDB

MongoDB, comme toute autre base de données, est disponible en plusieurs variantes en fonction des besoins de développement. Les variantes sont listées ci-dessous et peuvent être utilisées ou téléchargées à partir de ce privilège

  • MongoDB Atlas - Base de données en tant que service
  • Community Server - Utilisation gratuite pour la communauté des développeurs
  • MongoDB Enterprise Edition - La version commerciale avec des fonctionnalités supplémentaires

Chacun de ces logiciels est entièrement compatible avec tous les systèmes d'exploitation. Pour commencer l'installation d'un serveur communautaire, téléchargez le fichier d'installation correspondant à votre système d'exploitation

Le processus d'installation diffère légèrement d'un système d'exploitation à l'autre, c'est pourquoi nous allons procéder à l'installation de chaque système d'exploitation séparément

Installation sur MacOS

Pour installer MongoDB sous MacOS. Téléchargez l'archive .tgz contenant les binaires nécessaires. En désarchivant le fichier, vous devriez être en mesure de voir un ensemble de binaires situés dans le dossier poubelle

  • Déplacez le dossier bin à l'emplacement souhaité
  • Ouvrez un terminal et changez le répertoire pour le répertoire bin mentionné ci-dessus
  • Exécutez la commande ci-dessous pour créer une base de données à l'emplacement souhaité.
./mongod --dbpath /chemin vers le répertoire désiré/

Dans la commande ci-dessus, remplacez le chemin d'accès au répertoire par le chemin d'accès souhaité et le serveur sera démarré dès l'exécution de la commande

Installation sous Windows

Le centre de téléchargement de MongoDB fournit un paquet .msi exécutable pour installer MongoDB sous Windows. L'installation sous Windows est assez simple et peut être effectuée à l'aide de quelques commandes une fois que l'installation a été téléchargée

  • Exécutez les commandes ci-dessous pour installer MongoDB sur un PC/serveur Windows.
> cd /setup-folder/
> msiexec.exe /q /i .msi ^
INSTALLLOCATION="C:Program FilesMongoDB" ^
ADDLOCAL="MonitoringTools,ImportExportTools,MiscellaneousTools"

Les commandes ci-dessus vous conduiront au répertoire correspondant et exécuteront le setup pour l'installation à l'emplacement spécifié. Une fois l'installation terminée, vous devez configurer le chemin de stockage de la base de données par défaut pour MongoDB

La commande ci-dessous vous aide à le faire

> md dbdata

La commande ci-dessus crée un dossier db/data dans le répertoire vers lequel pointe actuellement l'invite de commande. Si vous devez reconfigurer la base de données, vous pouvez utiliser mongod.exe avec l'argument chemin d'accès comme indiqué ci-dessous
>

C:Program FilesMongoDBbinmongod.exe" --dbpath d:tutorialmongodbdata

Installation sous Linux

Comme pour macOS, MongoDB pour les variantes Linux est également disponible sous la forme d'un ensemble de binaires archivés. Le processus d'installation de MongoDB est assez similaire

  • Déplacez les fichiers binaires à l'emplacement souhaité
  • Ouvrez le terminal dans le dossier
  • Exécutez la commande ci-dessous avec l'emplacement de la base de données souhaitée
./mongod --dbpath /répertoire désiré/

Création de la première collection

MongoDB stocke les données sous forme de documents JSON. Un groupe de documents de ce type est collectivement connu sous le nom de collection dans MongoDB. Ainsi, une collection est analogue à une table dans une base de données relationnelle, tandis qu'un document est analogue à un enregistrement

Pour stocker des documents, nous devons d'abord créer une collection. Ce qui est intéressant avec les bases de données NoSQL, c'est que contrairement aux bases de données SQL, vous n'avez pas besoin de spécifier les noms des colonnes ou les types de données

La première étape de la création d'une collection consiste à créer une base de données. Pour créer une base de données et vous y connecter à l'aide de la ligne de commande, exécutez la commande suivante à partir du répertoire d'origine de l'installation de MongoDB

./bin/mongo tutorial

Cette commande est utilisée pour démarrer la connexion à la base de données et se connecter simultanément à la base de données du didacticiel. Elle affichera un certain nombre de lignes dans le journal pour indiquer que la ligne de commande s'est connectée à la base de données MongoDB

Un exemple d'image de ligne de commande a été affiché ci-dessous pour vous donner une meilleure idée

Screen-Shot-2018-05-22-at-9.07.12-PM

  • Pour créer une collection, exécutez la commande suivante :
$ > db.createCollection('firstCollection')

C'est ainsi qu'une collection vide est créée. L'étape suivante consiste à insérer des données et à effectuer des traitements sur les enregistrements à l'aide de la ligne de commande MongoDB

Insertion d'un document dans la collection

Comme nous l'avons vu plus haut, il est possible d'insérer presque n'importe quel JSON dans chaque collection MongoDB

Commençons par l'insertion du premier document JSON dans la collection premièreCollection créée ci-dessus
>

 db.firstCollection.insertOne({name:'Abhishek',skill:'MongoDB'})

La commande ci-dessus insère un seul document JSON dans la collection firstCollection. La même chose peut être vérifiée en utilisant la commande ci-dessous

> db.firstCollection.find()

La commande ci-dessus peut être utilisée de multiples façons, en fonction de la variation de la fonction find(). Lorsqu'aucun argument n'est spécifié, comme c'est le cas avec la commande ci-dessus, elle récupère tous les documents disponibles dans la collection

Vous pouvez insérer un enregistrement supplémentaire et essayer la même chose. Ce faisant, la sortie de la commande ci-dessus sera similaire à celle illustrée ci-dessous

> db.firstCollection.find() ;
{ "_id" : ObjectId("5b043a32c29a7184535e783a"), "name" : "Abhishek", "skill" : "MongoDB" }
{ "_id" : ObjectId("5b05b4f0c29a7184535e783b"), "name" : "GeekFlare", "skill" : "Java,MongoDB,NodeJS"
}

Comme vous pouvez le constater, deux enregistrements disponibles sont affichés. La fonction find() peut être facilement utilisée pour filtrer les documents en fonction de paramètres spécifiques. Filtrons le document à l'aide de l'attribut name

Le processus de filtrage est simple et peut être compris à partir de la commande ci-dessous

db.firstCollection.find({name:'Abhishek'}) ;
{"_id" : ObjectId("5b043a32c29a7184535e783a"), "name" : "Abhishek", "skill" : "MongoDB" }

Le filtre peut également être utilisé avec plusieurs attributs dans le JSON. Bien qu'il soit possible d'ajouter un nombre illimité de paramètres à la requête, cette approche est limitée par le fait qu'elle ne correspond qu'à la valeur exacte des attributs

Filtrage des enregistrements à l'aide de Regex

Pour exécuter l'équivalent en MongoDB d'une clause MySQL comme , MongoDB utilise des expressions rationnelles . Les regex sont des séries de caractères formant un motif à comparer. Les lettres regex sont similaires à celles utilisées en Javascript

Pour la collecte actuelle, nous allons essayer de récupérer les données en faisant correspondre un motif à l'attribut skill. La commande ci-dessous permet d'obtenir la liste des personnes ayant la compétence MongoDB. Ainsi, elle récupérera deux enregistrements car ils contiennent tous deux la chaîne MongoDB

> db.firstCollection.find({skill:/.*MongoDB.*/}) ;
{"_id" : ObjectId("5b043a32c29a7184535e783a"), "name" : "Abhishek", "skill" : "MongoDB" }
{ "_id" : ObjectId("5b05b4f0c29a7184535e783b"), "name" : "GeekFlare", "skill" : "Java,MongoDB,NodeJS" }
> db.firstCollection.find({skill:/.*Java.*/}) ;
{ "_id" : ObjectId("5b05b4f0c29a7184535e783b"), "name" : "GeekFlare", "skill" : "Java,MongoDB,NodeJS"
}

Le code ci-dessus affiche le résultat de deux chaînes différentes sous la forme d'une expression rationnelle. La première requête permet d'obtenir la liste d'un document dont l'attribut "skill" contient le mot-clé MongoDB, tandis que l'autre permet d'obtenir les personnes compétentes en Java uniquement

Le prochain défi dans les requêtes basées sur des critères est d'effectuer une requête avec une condition OR ou AND

Requêtes complexes dans MongoDB

Comme il ressort clairement des commandes ci-dessus, les clauses where de MongoDB fonctionnent sur JSON. Le processus de combinaison des conditions dépend également de JSON lui-même. MongoDB fournit des opérateurs tels que $or, $and et $not pour effectuer les opérations de requête appropriées

Essayons d'obtenir la liste des documents dont l'attribut name contient Abhishek ou skill contient Java

> db.firstCollection.find({$or : [{name:'Abhishek'},{skill:/.*Java.*/}]}) ;
{ "_id" : ObjectId("5b043a32c29a7184535e783a"), "name" : "Abhishek", "skill" : "MongoDB" }
{ "_id" : ObjectId("5b05b4f0c29a7184535e783b"), "name" : "Geekflare", "skill" : "Java,MongoDB,NodeJS"
}

Comme on peut le voir, les deux enregistrements sont récupérés. Vous pouvez essayer d'utiliser l'attribut name comme Geekflare et voir le changement. Seul le document avec trois compétences et le nom Geekflare sera affiché

De même, il est possible d'utiliser l'opérateur $and avec un tableau JSON de conditions, comme indiqué ci-dessus

Pour la prochaine série d'opérateurs, nous devons créer une collection supplémentaire et y ajouter des enregistrements à l'aide des commandes ci-dessous

> db.createCollection('studentmarks') ;
{"ok" : 1 }
> db.studentmarks.insertMany([{nom : 'A',notes:20},{nom : 'B',notes:25},{nom : 'C',notes:22},{nom : 'D',notes:30}]) ;
{
"acknowledged" : vrai,
"insertedIds" : [
ObjectId("5b06e7b5c29a7184535e783c"),
ObjectId("5b06e7b5c29a7184535e783d"),
ObjectId("5b06e7b5c29a7184535e783e"),
ObjectId("5b06e7b5c29a7184535e783f")
]

}


L'ensemble suivant d'opérateurs que nous utiliserons sont les opérateurs de comparaison dans la requête. Pour comparer des valeurs à l'aide de critères tels que " moins que “, ” plus que " ou " pas égal à", nous utilisons les opérateurs appropriés dans la valeur que nous transmettons

Vous trouverez ci-dessous un exemple d'obtention d'une liste d'étudiants dont les notes sont supérieures à 22

db.studentmarks.find({marks:{$gt:22}}) ;
{"_id" : ObjectId("5b06e7b5c29a7184535e783d"), "name" : "B", "marks" : 25 }
{ "_id" : ObjectId("5b06e7b5c29a7184535e783f"), "name" : "D", "marks" : 30 }

Le $gt indique ici plus grand que dans les critères. Ainsi, les documents dont les notes sont supérieures à 22 sont affichés. De même, d'autres opérateurs peuvent être utilisés. Ils sont énumérés ci-dessous

Opérateur Utilisation Exemple
$eq Vérifier si la valeur est égale {marques:{$eq:20}}
$lt Vérifier si la valeur est inférieure à {marques : {$lt:20}}
$gte Vérifier si la valeur est supérieure ou égale à {marks:{$gte:22}}
$lte Vérifier si la valeur est inférieure ou égale à {marks:{$lte:22}}
$ne Vérifier si la valeur n'est pas égale à {marques:{$ne:22}}
$in Vérifier si la valeur est égale à l'une des valeurs du tableau {marks:{$in:[20,22]}}
$nin Vérifier si la valeur n'est égale à aucune valeur du tableau {marks:{$nin:[22,25]}}

Découvrez d'autres commandes MongoDB ici

Interface graphique pour MongoDB

Dans la discussion ci-dessus, nous avons utilisé une ligne de commande pour exécuter nos requêtes dans MongoDB

L'utilisation de la ligne de commande peut s'avérer difficile lorsqu'il s'agit de requêtes complexes et d'un grand nombre de données. Pour faciliter la visualisation des données et l'exécution des requêtes, MongoDB met à votre disposition un excellent outil d'interface graphique appelé MongoDB Compass

MongoDB Compass peut être facilement téléchargé à partir du site de téléchargement de MongoDB. Une fois que vous avez téléchargé et installé MongoDB Compass, démarrez l'application et vous serez accueilli par un écran similaire à celui illustré ci-dessous

MongoDBCompass

Étant donné que le serveur MongoDB est opérationnel, cliquez sur Connecter avec les détails par défaut. Vous devriez être connecté et voir la liste des bases de données disponibles

Cliquez sur la base de données tutorielle pour vérifier la liste des collections dans la base de données tutorielle. Comme indiqué ci-dessous, la liste des collections disponibles dans la base de données des didacticiels s'affiche

Screen-Shot-2018-05-26-at-12.49.55-AM-e1527276073795

En cliquant sur la collection, la liste des documents s'affiche avec les commandes nécessaires pour filtrer les enregistrements à l'aide d'un JSON, ainsi que la possibilité d'afficher les documents au format JSON ou sous forme de tableau, selon votre convenance

L'interface graphique simplifie également l'ajout d'un document. Il vous suffit de cliquer sur le bouton Insérer un document dans l'écran ci-dessous. Une petite boîte de dialogue s'ouvre pour vous demander les détails du document avec un identifiant généré automatiquement

Documents MongoDBD

L'interface graphique simplifie un grand nombre d'opérations qui pourraient être difficiles à effectuer en utilisant l'interface de ligne de commande de MongoDB

Vous pouvez explorer d'autres clients NoSQL

Conclusion

Nous avons capturé l'essence de NoSQL avec une variété d'exemples et compris l'installation, comment les documents sont différents par rapport à un enregistrement de base de données relationnelle typique. Vous pouvez également vous référer à ce cours en ligne d'apprentissage de MongoDB à partir de zéro

Et si vous êtes développeur, vous serez peut-être intéressé par celui-ci.

  • Abhishek Kothari
    Auteur
    Abhishek est un développeur Web qui possède des compétences variées dans de nombreuses technologies de développement Web. Au cours de sa carrière professionnelle, il a travaillé sur de nombreuses applications d'entreprise et a compris l'architecture technologique et... en savoir plus
Merci à nos sponsors
D'autres lectures intéressantes sur la base de données
Alimentez votre entreprise
Quelques outils et services pour aider votre entreprise à se développer.
  • Invicti utilise le Proof-Based Scanning™ pour vérifier automatiquement les vulnérabilités identifiées et générer des résultats exploitables en quelques heures seulement.
    Essayez Invicti
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, search engine crawler, et tout ce dont vous avez besoin pour collecter des données web.
    Essayez Brightdata
  • Monday.com est un système d'exploitation tout-en-un qui vous aide à gérer vos projets, vos tâches, votre travail, vos ventes, votre CRM, vos opérations, vos flux de travail et bien plus encore.
    Essayez le lundi
  • Intruder est un scanner de vulnérabilité en ligne qui détecte les faiblesses de votre infrastructure en matière de cybersécurité, afin d'éviter des violations de données coûteuses.
    Essayer l'intrus