I Introduction
Commandes de bases permettant de manipuler des bases de données MongoDB avec le client « Mongo ».
Client « Shell Mongo » : Aller dans le répertoire d’installation de MongoDB. Puis lancer mongo.exe qui se trouve dans …./bin/Mongo.exe
II Ressources web
initiation : https://docs.mongodb.com/manual/mongo/
command shell en détail : https://docs.mongodb.com/manual/reference/method/
III Commandes de base
III.1 Manipulation des bases de données
- show dbs : [shell] montre toutes les bases de données du serveur
- db.adminCommand(‘listDatabases’) : montre toutes les bases de données du serveur
- db : [shell] montre la base de données en cours
- use <nom_base_de_données> : [shell] sélectionne une base de données de travail. Création si elle n’existe pas.
- db.getSiblingDB(nom_bdd) : sélectionne une base de données de travail. Création si elle n’existe pas ;
- db.dropDatabase() : efface la base de données en cours.
III.2 Manipulation des collections au sein d’une base de données
- db.getCollectionNames() : liste des collections au sein d’une base.
- show collections : [shell] liste des collections au sein du base (résultat sous format texte et non JSON)
- db.createCollection("Nom_collection") : créer une collection vide
- db.ancien_nom_collection.renameCollection(« nouveau_nom« ) : renomme une collection.
- db.nom_collection.drop() : supprime une collection
III.3 Travail au sein d’une collection
- db.nom_collection.find() : recherche enregistrements dans une collection précise. Les filtres sont à mettre en place dans la méthode find() sous forme de texte/json. Retourne un objet que l’on peut parcourir avec l’objet « cursor ».
- détails d’une recherche : lien MongoDB
- opérateurs ET / OU / IN et retour que de certains champs …
- détails d’une recherche : lien MongoDB
- count() : compte le nombre d’éléments :
- db.nom_collection.count() : compte tous les documents d’une collection
- db.nom_collection.find().count() : compte tous les documents recherchés
- sort() : trier le résultat
Exemple1 : recherche par rapport à un champ précis
Recherche dans la collection « produit » les documents dont l’id est 3021760403891
db.produit.find({_id: »3021760403891″})
Exemple 2 : recherche en case sensitive.
Pour cela il faut utiliser les expressions régulières. Ici recherche du mot lustucru dans la propriété champ « brands »
db.produit.find({brands : /^lustucru$/i})
- db.nom_collection.insert(un_document) : insère un document au sein d’une collection
Liste des correspondances SQL –> Mongodb :
https://docs.mongodb.com/manual/reference/sql-comparison/
Bref, par défaut, on oubli les jointures, les group by, les fonctions(sum), etc… il va falloir coder en javascript pour retrouver tout cela …
Exemple de GroupBy / Distinct :
https://docs.mongodb.com/manual/aggregation/
https://www.mkyong.com/mongodb/mongodb-aggregate-and-group-example/
III.4 Script : charger les scripts intégrés sur le serveur
Charger les scripts en mémoire.
- db.loadServerScripts()
- sélectionner la base de données de travail
- executer le script (fonction javascript)
Si un script est modifié, il faut impérativement le recharger en mémoire (db.loadServerScripts() …)
III.5 Sauvegarde/Restauration d’une base de données
Il faut utiliser l’outil « mongorestore.exe » situé dans le répertoire bin.
commande : ./mongorestore.exe -d nom_base -c nom_collection chemin_du_fichier_bson
Exemple :