Comment démarrer avec MongoDB en 10 minutes
par Navindu Jayatilake
MongoDB est une base de données NoSQL riche et orientée documents.
Si vous êtes un débutant complet en NoSQL, je vous recommande de jeter un coup d’œil à mon article NoSQL publié précédemment.
Aujourd’hui, je voulais partager certaines des choses de base sur les commandes MongoDB telles que l’interrogation, le filtrage des données, la suppression, la mise à jour, etc.
D’accord, assez de discussions, mettons-nous au travail!
Configuration ?
Pour travailler avec MongoDB, vous devez d’abord installer MongoDB sur votre ordinateur. Pour ce faire, visitez le centre de téléchargement officiel et téléchargez la version pour votre système d’exploitation spécifique. Ici, j’ai utilisé Windows.
Après avoir téléchargé la configuration du serveur communautaire MongoDB, vous passerez par un processus d’installation « suivant après suivant ». Une fois cela fait, dirigez-vous vers le lecteur C dans lequel vous avez installé MongoDB. Allez dans fichiers de programme et sélectionnez le répertoire MongoDB.
C: -> Program Files -> MongoDB -> Server -> 4.0(version) -> bin
Dans le répertoire bin, vous trouverez quelques fichiers exécutables intéressants.
- mongod
- mongo
Parlons de ces deux fichiers.
mongod signifie « Démon Mongo ». mongod est un processus d’arrière-plan utilisé par MongoDB. Le but principal de mongod est de gérer toutes les tâches du serveur MongoDB. Par exemple, accepter des demandes, répondre au client et gérer la mémoire.
mongo est un shell en ligne de commande qui peut interagir avec le client (par exemple, les administrateurs système et les développeurs).
Voyons maintenant comment ce serveur peut être opérationnel. Pour ce faire sous Windows, vous devez d’abord créer quelques répertoires dans votre lecteur C. Ouvrez votre invite de commande dans votre lecteur C et procédez comme suit:
C:\> mkdir data/dbC:\> cd dataC:\> mkdir db
Le but de ces répertoires est que MongoDB nécessite un dossier pour stocker toutes les données. Le chemin du répertoire de données par défaut de MongoDB est /data/db
sur le lecteur. Par conséquent, il est nécessaire que nous fournissions ces répertoires comme cela.
Si vous démarrez le serveur MongoDB sans ces répertoires, vous verrez probablement l’erreur suivante:
Après avoir créé ces deux fichiers, revenez au dossier bin que vous avez dans votre répertoire mongodb et ouvrez votre shell à l’intérieur ça. Exécutez la commande suivante :
mongod
Voilà ! Maintenant, notre serveur MongoDB est opérationnel ! ?
Pour travailler avec ce serveur, nous avons besoin d’un médiateur. Ouvrez donc une autre fenêtre de commande dans le dossier bind et exécutez la commande suivante:
mongo
Après avoir exécuté cette commande, accédez au shell que nous avons exécuté la commande mongod (qui est notre serveur). Vous verrez un message « connexion acceptée » à la fin. Cela signifie que notre installation et notre configuration sont réussies!
Exécutez simplement dans le shell mongo :
db
Configuration des variables d’environnement
Pour gagner du temps, vous pouvez configurer vos variables d’environnement. Sous Windows, cela se fait en suivant les menus ci-dessous:
Advanced System Settings -> Environment Variables -> Path(Under System Variables) -> Edit
Copiez simplement le chemin de notre dossier bin et cliquez sur OK! Dans mon cas, c’est C:\Program Files\MongoDB\Server\4.0\bin
Maintenant vous êtes prêt!
Travailler avec MongoDB
Il existe un tas d’interfaces graphiques (Interface utilisateur graphique) pour travailler avec le serveur MongoDB telles que MongoDB Compass, Studio 3T et ainsi de suite.
Ils fournissent une interface graphique vous permettant de travailler facilement avec votre base de données et d’effectuer des requêtes au lieu d’utiliser un shell et de taper des requêtes manuellement.
Mais dans cet article, nous utiliserons l’invite de commande pour faire notre travail.
Il est maintenant temps pour nous de nous plonger dans les commandes MongoDB qui vous aideront à les utiliser avec vos futurs projets.
- Ouvrez votre invite de commande et tapez
mongod
pour démarrer le serveur MongoDB.
2. Ouvrez un autre shell et tapez mongo
pour vous connecter au serveur de base de données MongoDB.
1. Trouver la base de données actuelle dans laquelle vous vous trouvez
db
Cette commande affichera la base de données actuelle dans laquelle vous vous trouvez. test
est la base de données initiale fournie par défaut.
2. Liste des bases de données
show databases
J’ai actuellement quatre bases de données. Ils sont : CrudDB
admin
config
et local
.
3. Aller à une base de données particulière
use <your_db_name>
Ici, je suis passé à la local
div > base de données. Vous pouvez vérifier cela si vous essayez la commande db
pour imprimer le nom de la base de données actuelle.
4. Création d’une Base de Données
Avec des SGBDR (Systèmes de Gestion de Bases de Données Relationnelles), nous avons des Bases de Données, des Tables, des Lignes et des Colonnes.
Mais dans les bases de données NoSQL, telles que MongoDB, les données sont stockées au format BSON (une version binaire de JSON). Ils sont stockés dans des structures appelées « collections”.
Dans les bases de données SQL, celles-ci sont similaires aux tables.
D’accord, parlons de la façon dont nous créons une base de données dans le shell mongo.
use <your_db_name>
Attendez, nous avions cette commande avant! Pourquoi je l’utilise à nouveau?!
Dans le serveur MongoDB, si votre base de données est déjà présente, l’utilisation de cette commande naviguera dans votre base de données.
Mais si la base de données n’est pas déjà présente, alors le serveur MongoDB va créer la base de données pour vous. Ensuite, il y naviguera.
Après avoir créé une nouvelle base de données, l’exécution de la commande show database
n’affichera pas votre base de données nouvellement créée. En effet, tant qu’il n’a pas de données (documents) dedans, il ne s’affichera pas dans votre liste de bases de données.
5. Création d’une collection
Naviguez dans votre base de données nouvellement créée avec la commande use
.
En fait, il existe deux façons de créer une collection. Voyons les deux.
Une façon consiste à insérer des données dans la collection:
db.myCollection.insert({"name": "john", "age" : 22, "location": "colombo"})
Cela va créer votre collection myCollection
même si la collection n’existe pas. Ensuite, il insérera un document avec name
et age
. Ce sont des collections non plafonnées.
La deuxième façon est indiquée ci-dessous:
2.1 Création d’une Collection Non plafonnée
db.createCollection("myCollection")
2.2 Création d’une Collection plafonnée
db.createCollection("mySecondCollection", {capped : true, size : 2, max : 2})
De cette façon, vous allez créer une collection sans insérer de données.
Une « collection plafonnée » a un nombre maximal de documents qui empêche le débordement de documents.
Dans cet exemple, j’ai activé le plafonnement, en définissant sa valeur sur true
.
Le size : 2
signifie une limite de deux mégaoctets, et max: 2
définit le nombre maximum de documents à deux.
Maintenant, si vous essayez d’insérer plus de deux documents dans mySecondCollection
et utilisez la commande find
(dont nous parlerons bientôt), vous ne verrez que les documents les plus récemment insérés. Gardez à l’esprit que cela ne signifie pas que le tout premier document a été supprimé — il ne s’affiche tout simplement pas.
6. Insertion de données
Nous pouvons insérer des données dans une nouvelle collection ou dans une collection précédemment créée.
Il existe trois méthodes d’insertion de données.
-
insertOne()
est utilisé pour insérer un seul document. -
insertMany()
est utilisé pour insérer plusieurs documents. -
insert()
est utilisé pour insérer autant de documents que vous le souhaitez.
Voici quelques exemples:
- insertOne()
db.myCollection.insertOne( { "name": "navindu", "age": 22 })
- insertMany()
db.myCollection.insertMany()
La méthode insert()
est similaire à la méthode insertMany()
méthode.
Notez également que nous avons inséré une nouvelle propriété appelée location
sur le document pour John Doe
. Donc, si vous utilisez find
, vous ne verrez que pour john doe
la propriété location
est attachée.
Cela peut être un avantage en ce qui concerne les bases de données NoSQL telles que MongoDB. Il permet une évolutivité.
7. Interrogation des données
Voici comment vous pouvez interroger toutes les données d’une collection :
db.myCollection.find()
Si vous voulez voir ces données de manière plus propre, ajoutez simplement .pretty()
à la fin. Cela affichera le document au format JSON joli imprimé.
db.myCollection.find().pretty()
Wait…In ces exemples venez-vous de remarquer quelque chose comme _id
? Comment est-ce arrivé là?
Eh bien, chaque fois que vous insérez un document, MongoDB ajoute automatiquement un champ _id
qui identifie de manière unique chaque document. Si vous ne voulez pas qu’il s’affiche, exécutez simplement la commande suivante
db.myCollection.find({}, _id: 0).pretty()
Ensuite, nous examinerons le filtrage des données.
Si vous souhaitez afficher un document spécifique, vous pouvez spécifier un seul détail du document que vous souhaitez afficher.
db.myCollection.find( { name: "john" })
Disons que vous ne voulez afficher que les personnes dont l’âge est inférieur à 25 ans. Vous pouvez utiliser $lt
pour filtrer cela.
db.myCollection.find( { age : {$lt : 25} })
De même, $gt
signifie supérieur à, $lte
est « inférieur ou égal à”, $gte
est « supérieur ou égal à” et $ne
est « pas égal”.
8. Mise à jour des documents
Disons que vous voulez mettre à jour l’adresse ou l’âge de quelqu’un, comment pouvez-vous le faire? Eh bien, voyez l’exemple suivant:
db.myCollection.update({age : 20}, {$set: {age: 23}})
Le premier argument est le champ du document que vous souhaitez mettre à jour. Ici, je spécifie age
pour la simplicité. Dans l’environnement de production, vous pouvez utiliser quelque chose comme le champ _id
.
Il est toujours préférable d’utiliser quelque chose comme _id
pour mettre à jour une ligne unique. En effet, plusieurs champs peuvent avoir les mêmes age
et name
. Par conséquent, si vous mettez à jour une seule ligne, cela affectera toutes les lignes qui ont le même nom et le même âge.
Si vous mettez à jour un document de cette façon avec une nouvelle propriété, disons location
par exemple , le document sera mis à jour avec le nouvel attribut. Et si vous faites un find
, alors le résultat sera:
Si vous devez supprimer une propriété d’un seul document, vous pouvez faire quelque chose comme ça (disons que vous voulez age
à disparaître):
db.myCollection.update({name: "navindu"}, {$unset: age});
9. Suppression d’un document
Comme je l’ai mentionné précédemment, lorsque vous mettez à jour ou supprimez un document, il vous suffit de spécifier le _id
pas seulement name
age
location
.
db.myCollection.remove({name: "navindu"});
10. Suppression d’une collection
db.myCollection.remove({});
Remarque, cela n’est pas égal à la méthode drop()
. La différence est que drop()
est utilisé pour supprimer tous les documents d’une collection, mais la méthode remove()
est utilisée pour supprimer tous les documents ainsi que la collection elle-même.
Opérateurs logiques
MongoDB fournit des opérateurs logiques. L’image ci-dessous résume les différents types d’opérateurs logiques.
Disons que vous voulez afficher des personnes dont l’âge est inférieur à 25 ans et dont l’emplacement est Colombo. Qu’est-ce qu’on pourrait faire ?
Nous pouvons utiliser l’opérateur $and
!
db.myCollection.find({$and:});
Enfin et surtout, parlons d’agrégation.
Agrégation
Un rappel rapide sur ce que nous avons appris sur les fonctions d’agrégation dans les bases de données SQL:
En termes simples, l’agrégation regroupe les valeurs de plusieurs documents et les résume d’une manière ou d’une autre.
Imaginez si nous avions des étudiants masculins et féminins dans une collection recordBook
et nous voulons un décompte total sur chacun d’eux. Afin d’obtenir la somme des mâles et des femelles, nous pourrions utiliser la fonction d’agrégat $group
.
db.recordBook.aggregate();
Conclusion
Nous avons donc discuté de la bases de MongoDB dont vous pourriez avoir besoin à l’avenir pour créer une application. J’espère que vous avez apprécié cet article – merci d’avoir lu!