MongoDB Tutoriel
Démarrer avec MongoDB
Recherche…
Remarques
- Les données dans le monde ont commencé à croître énormément après la mise sur le marché des applications mobiles. Cette énorme quantité de données est devenue presque impossible à gérer avec la base de données relationnelle traditionnelle - SQL. Des bases de données NoSQL sont introduites pour gérer les données pour lesquelles beaucoup plus de flexibilité est apparue comme un nombre variable de colonnes pour chaque donnée.
- MongoDB est l'une des principales bases de données NoSQL. Chaque collection contient un certain nombre de documents JSON. Tout modèle de données pouvant être exprimé dans un document JSON peut être facilement stocké dans MongoDB.
- MongoDB est une base de données serveur-client. Le serveur s'exécute généralement avec le fichier binaire
mongod
et le client s'exécute avecmongo
. - Il n'y a pas d'opération de jointure dans MongoDB avant la v.3.2, pour diverses raisons philosophiques et pragmatiques . Mais le shell Mongo supporte le javascript, donc si $ lookup n'est pas disponible, on peut simuler des opérations de jointure sur des documents en javascript avant de les insérer.
- Pour exécuter une instance dans un environnement de production, il est fortement recommandé de suivre la liste de contrôle des opérations .
Versions
Version | Date de sortie |
---|---|
3.4 | 2016-11-29 |
3.2 | 2015-12-08 |
3.0 | 2015-03-03 |
2.6 | 2014-04-08 |
2.4 | 2013-03-19 |
2.2 | 2012-08-29 |
2.0 | 2011-09-12 |
1.8 | 2011-03-16 |
1.6 | 2010-08-31 |
1.4 | 2010-03-25 |
1.2 | 2009-12-10 |
Installation
Pour installer MongoDB, suivez les étapes ci-dessous:
Pour Mac OS:
- Il existe deux options pour Mac OS: installation manuelle ou homebrew .
- Installation avec homebrew :
- Tapez la commande suivante dans le terminal:
$ brew install mongodb
- Tapez la commande suivante dans le terminal:
- Installation manuelle:
Téléchargez la dernière version ici . Assurez-vous que vous téléchargez le fichier approprié, vérifiez particulièrement si votre type de système d'exploitation est 32 bits ou 64 bits. Le fichier téléchargé est au format
tgz
.Accédez au répertoire dans lequel ce fichier est téléchargé. Ensuite, tapez la commande suivante:
$ tar xvf mongodb-osx-xyz.tgz
Au lieu de
xyz
, il y aurait des informations sur la version et le type de système. Le dossier extrait porterait le même nom que le fichiertgz
. Dans le dossier, il y aurait un sous-dossier nommébin
qui contiendrait plusieurs fichiers binaires avecmongod
etmongo
.Par défaut, le serveur conserve les données dans le dossier
/data/db
. Donc, nous devons créer ce répertoire, puis exécuter le serveur avec les commandes suivantes:$ sudo bash # mkdir -p /data/db # chmod 777 /data # chmod 777 /data/db # exit
Pour démarrer le serveur, la commande suivante doit être donnée à partir de l'emplacement actuel:
$ ./mongod
Il lancerait le serveur sur le port 27017 par défaut.
Pour démarrer le client, un nouveau terminal doit être ouvert avec le même répertoire que précédemment. Ensuite, la commande suivante démarre le client et se connecte au serveur.
$ ./mongo
Par défaut, il se connecte à la base de données de
test
. Si vous voyez la ligne comme seconnecting to: test
. Ensuite, vous avez installé MongoDB avec succès. Félicitations! Maintenant, vous pouvez tester Hello World pour être plus confiant.
Pour les fenêtres:
Téléchargez la dernière version ici . Assurez-vous que vous téléchargez le fichier approprié, vérifiez particulièrement si votre type de système d'exploitation est 32 bits ou 64 bits.
Le fichier binaire téléchargé a l'extension
exe
. Exécuter. Il vous demandera un assistant d'installation.Cliquez sur Suivant .
Acceptez le contrat de licence et cliquez sur Suivant .
Sélectionnez Installation complète .
Cliquez sur Installer . Il peut demander une fenêtre pour demander l'autorisation de l'administrateur. Cliquez sur Oui .
Après l'installation, cliquez sur Terminer .
Maintenant, le mongodb est installé sur le chemin
C:/Program Files/MongoDB/Server/3.2/bin
. Au lieu de la version 3.2, il pourrait y avoir une autre version pour votre cas. Le nom du chemin serait modifié en conséquence.bin
répertoirebin
contient plusieurs fichiers binaires avecmongod
etmongo
. Pour l'exécuter à partir d'un autre dossier, vous pouvez ajouter le chemin dans le chemin du système. Pour le faire:- Cliquez avec le bouton droit sur Poste de travail et sélectionnez Propriétés .
- Cliquez sur Paramètres système avancés dans le volet gauche.
- Cliquez sur Variables d'environnement ... sous l'onglet Avancé .
- Sélectionnez Path from System variables section et cliquez sur Edit ....
- Avant Windows 10, ajoutez un point-virgule et collez le chemin indiqué ci-dessus. À partir de Windows 10, il existe un bouton Nouveau pour ajouter un nouveau chemin.
- Cliquez sur OK pour enregistrer les modifications.
Maintenant, créez un dossier nommé
data
contenant un sous-dossier nommédb
où vous souhaitez exécuter le serveur.Démarrer l'invite de commande depuis leur. Soit changer le chemin dans cmd ou en cliquant sur Ouvrir la fenêtre de commande ici qui serait visible après un clic droit sur l'espace vide de l'interface graphique du dossier en appuyant sur la touche Maj et Ctrl ensemble.
Écrivez la commande pour démarrer le serveur:
> mongod
Il lancerait le serveur sur le port 27017 par défaut.
Ouvrez une autre invite de commande et tapez ce qui suit pour démarrer le client:
> mongo
Par défaut, il se connecte à la base de données de
test
. Si vous voyez la ligne comme seconnecting to: test
. Ensuite, vous avez installé MongoDB avec succès. Félicitations! Maintenant, vous pouvez tester Hello World pour être plus confiant.
Pour Linux: Presque identique à Mac OS sauf qu'une commande équivalente est nécessaire.
- Pour les distributions basées sur Debian (en utilisant
apt-get
):Importer la clé du référentiel MongoDB.
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927 gpg: Total number processed: 1\ gpg: imported: 1 (RSA: 1)
Ajouter un référentiel à la liste de paquets sur Ubuntu 16.04 .
$ echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
sur Ubuntu 14.04 .
$ echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
Mettre à jour la liste des paquets.
$ sudo apt-get update
Installez MongoDB.
$ sudo apt-get install mongodb-org
- Pour les distributions basées sur Red Hat (en utilisant
yum
):utilisez un éditeur de texte que vous préférez.
$ vi /etc/yum.repos.d/mongodb-org-3.4.repo
Coller le texte suivant.
[mongodb-org-3.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
Mettre à jour la liste des paquets.
$ sudo yum update
Installez MongoDB
$ sudo yum install mongodb-org
- Pour les distributions basées sur Debian (en utilisant
Bonjour le monde
Après l'installation, les lignes suivantes doivent être entrées dans mongo shell (terminal client).
> db.world.insert({ "speech" : "Hello World!" });
> cur = db.world.find();x=cur.next();print(x["speech"]);
Bonjour le monde!
Explication:
- Dans la première ligne, nous avons inséré un document apparié
{ key : value }
dans letest
base de données par défaut et dans la collection nomméeworld
. - Dans la deuxième ligne, nous récupérons les données que nous venons d'insérer. Les données extraites sont conservées dans une variable javascript nommée
cur
. Ensuite, par la fonctionnext()
, nous avons récupéré le premier et le seul document et l'avons conservé dans une autre variable js nomméex
. Ensuite, imprimé la valeur du document fournissant la clé.
Conditions complémentaires
Termes SQL | Termes MongoDB |
---|---|
Base de données | Base de données |
Table | Collection |
Entité / Ligne | Document |
Colonne | Clé / champ |
Table Join | Documents intégrés |
Clé primaire | Clé primaire (clé par défaut _id fournie par mongodb lui-même) |
Exécution d'un fichier JavaScript dans MongoDB
./mongo localhost:27017/mydb myjsfile.js
Explication: Cette opération exécute le script myjsfile.js
dans un shell mongo
qui se connecte à la base de données mydb
sur l'instance mongod
accessible via l'interface localhost
sur le port 27017
. localhost:27017
n'est pas obligatoire car c'est le port par défaut utilisé par mongodb
.
En outre, vous pouvez exécuter un fichier .js
depuis la console mongo
.
>load("myjsfile.js")
Rendre la sortie de find lisible en shell
Nous ajoutons trois enregistrements à notre test de collecte:
> db.test.insert({"key":"value1","key2":"Val2","key3":"val3"})
WriteResult({ "nInserted" : 1 })
> db.test.insert({"key":"value2","key2":"Val21","key3":"val31"})
WriteResult({ "nInserted" : 1 })
> db.test.insert({"key":"value3","key2":"Val22","key3":"val33"})
WriteResult({ "nInserted" : 1 })
Si nous les voyons via find, ils seront très laids.
> db.test.find()
{ "_id" : ObjectId("5790c5cecae25b3d38c3c7ae"), "key" : "value1", "key2" : "Val2
", "key3" : "val3" }
{ "_id" : ObjectId("5790c5d9cae25b3d38c3c7af"), "key" : "value2", "key2" : "Val2
1", "key3" : "val31" }
{ "_id" : ObjectId("5790c5e9cae25b3d38c3c7b0"), "key" : "value3", "key2" : "Val2
2", "key3" : "val33" }
Pour contourner ce problème et les rendre lisibles, utilisez la fonction pretty ().
> db.test.find().pretty()
{
"_id" : ObjectId("5790c5cecae25b3d38c3c7ae"),
"key" : "value1",
"key2" : "Val2",
"key3" : "val3"
}
{
"_id" : ObjectId("5790c5d9cae25b3d38c3c7af"),
"key" : "value2",
"key2" : "Val21",
"key3" : "val31"
}
{
"_id" : ObjectId("5790c5e9cae25b3d38c3c7b0"),
"key" : "value3",
"key2" : "Val22",
"key3" : "val33"
}
>
Commandes de base sur la coquille mongo
Afficher toutes les bases de données disponibles:
show dbs;
Sélectionnez une base de données particulière à laquelle accéder, par exemple mydb
. Cela créera mydb
s'il n'existe pas déjà:
use mydb;
Afficher toutes les collections de la base de données (veillez à en sélectionner une, voir ci-dessus):
show collections;
Affiche toutes les fonctions pouvant être utilisées avec la base de données:
db.mydb.help();
Pour vérifier votre base de données sélectionnée, utilisez la commande db
> db
mydb
db.dropDatabase()
commande db.dropDatabase()
permet de supprimer une base de données existante.
db.dropDatabase()