Mongo Shell
Gestion du serveur NoSQL MongoDB
Ouverture du Mongo Shell
Le Mongo Shell est une interface en ligne de commande qui permet de réaliser toutes les opérations sur vos bases de données MongoDB (un max de 4095 caractères par ligne de commande)
Pour ouvrir le Mongo Shell, soit vous allez directement double cliquer sur le fichier mongo.exe qui ce trouve probablement dans C:\Program Files\MongoDB\Server\4.4\bin, soit vous passez par l'invite de commande Windows (CMD), soit vous utilisez la fenêtre Shell visible en bas de l'interface graphique MongoDB Compass
Ouverture de la fenêtre Mongo Shell via l'invite de commande Windows- On ouvre l'invite de commande Windows (Démarrer/CMD)
- Dans l'invite on fait un Change Directory vers le fichier exécutable Mongo Shell mongo.exe (pour moi : C:\Program Files\MongoDB\Server\4.4\bin)
C:\Users\yo> cd C:\Program Files\MongoDB\Server\4.4\bin
A ce niveau, deux options; soit vous lancez le Shell local, soit vous lancez le Shell distant (MongoDB Atlas)
- Lancer le shell local (avec l'instruction mongo)
C:\Program Files\MongoDB\Server\4.4\bin> mongo
- Lancer le shell distant MongoDB Atlas (avec la ligne de connexion)
C:\Program Files\MongoDB\Server\4.4\bin> mongodb+srv://<nom d'utilisateur>:<mot de passe>@cluster0.tumbv.mongodb.net/test
Nom d'utilisateur et mot de passe à renseigner. test correspond au nom de la base de donnée
Travailler avec le Mongo Shell
Gestion des bases de données
L'instruction db pour connaitre la base de donnée sur laquelle vous vous trouvez et bien sûr, use <database> pour ce connecter à une autre base. L'instruction show dbs pour lister les bases de données
Connexion à une base et ajout de donnée dans une collection> use myNewDatabase
> db.myCollection.insertOne( { x: 1 } );
> use sample_airbnb
> db.listingsAndReviews.find().pretty()
Plus d'infos sur le Manual Mongo
Astuces Shell
- Historique
Utilisez les flèches de direction du clavier pour afficher l'historique de vos commandes - Autocomplétions
Utilisez la touche clavier Tab pour l'autocomplétions de commande - Autres raccourcis
Voir la liste des raccourcis sur Manual MongoDB
Insérer des documents depuis le Shell
En NoSQL, un document d'une collection correspond à un enregistrement d'une table en relationnel
On utilise soit insertOne(), soit insertMany() - Le Create des CRUD Operations> use ma_db
> db.macollection.insertMany([
{ item: "journal", qty: 25, tags: ["blank", "red"], size: { h: 14, w: 21, uom: "cm" } },
{ item: "mat", qty: 85, tags: ["gray"], size: { h: 27.9, w: 35.5, uom: "cm" } },
{ item: "mousepad", qty: 25, tags: ["gel", "blue"], size: { h: 19, w: 22.85, uom: "cm" } }
])
> use ma_db
db.macollection.save ({
"cours" : "NoSQL",
"chapitres" : ["familles", "CAP", "sharding", "choix"],
"auteur" : {
"nom" : "Travers",
"prenom" : "Nicolas"
}
})
Importer des data depuis l'invite de commande
Pour importer des fichiers Json Open Data récupérés sur Data.gouv.fr (comme le fait CovidTraker), on utilise mongoimport depuis l'invite de commande Windows (mais pas depuis le Shell Mongo).
Cet utilitaire en ligne de commande fait parti des outils de commande de MongoDB qu'il faut télécharger ici : MongoDB Database Tools. MongoDB Database Tools contient 7 exécutables : mongodump (export en binaire), mongoexport, mongofiles (gestion des fichiers gridfs : qui dépassent la taille de 16 Mo), mongoimport, mongorestore, mongostat et mongotop (visuel du temp de lecture et d'écriture)
Préparation à l'import
Pour utiliser mongoimport depuis l'invite de commande Windows, faites un cd vers le dossier des utilitaires MongoDB que vous avez téléchargésC:\Users\yo> cd C:\Program Files\MongoDB\Tools\100\bin
C:\Program Files\MongoDB\Tools\100\bin> mongoimport --version
Importer vos data soit en local, soit sur un serveur distant
Faites votre import en local (localhost)C:\Program Files\MongoDB\Tools\100\bin> mongoimport --db ma_db --collection restaurants --file C:/data/db/restaurants.json
C:\Program Files\MongoDB\Tools\100\bin> mongoimport --uri mongodb+srv://<USER>:<PASS>@cluster0.tumbv.mongodb.net/ma_db --collection restaurants --file C:/data/db/restaurants.json
Afficher un jeux de données depuis le Shell
Connexion à une base et affichage d'un document> use ma_db
> db.restaurants.findOne()
db.restaurants.find( { "borough" : "Brooklyn" } )
db.restaurants.find( { "borough" : "Brooklyn" } ).count()
db.restaurants.find(
{ "borough" : "Brooklyn",
"cuisine" : "Italian",
"address.street" : "5 Avenue",
"name" : /pizza/i }
)
Projection
db.getCollection('restaurants').find(
{"borough":"Brooklyn",
"cuisine":"Italian",
"name":/pizza/i,
"address.street" : "5 Avenue"},
{"name":1, "_id":0}
)
➔ Plus d'infos sur OpenClassRoom avec Aggregate et Update (opérations $set et $unset)