Après avoir démarré avec succès MongoDB, ouvrez une fenêtre de terminal et entrez mongo pour effectuer des opérations sur la base de données. Tapez help pour afficher les commandes de base :
show dbs: affiche la liste des bases de données.show collections: affiche les collections de la base de données actuelle (similaires aux tables dans les bases relationnelles).show users: affiche les utilisateurs.
Utilisez use <nom_db> pour changer de base de données. La commande db.help() liste les opérations disponibles sur la base de données, tandis que db.collection.help() fournit de l'aide pour une collection spécifique. Par exemple, db.produits.find() récupère tous les doucments de la collection "produits", et db.produits.find({ prix: 50 }) filtre ceux où le prix est égal à 50.
Commandes Courantes pour les Bases de Données
- Aide et commandes :
help,db.help(),db.collection.help(),rs.help(). - Changer ou créer une base de données :
use maBase;– la création automatique se produit lors de l'ajout d'une collection. - Lister toutes les bases de données :
show dbs; - Supprimer la base de données courante :
db.dropDatabase(); - Cloner une base de données depuis un hôte :
db.cloneDatabase("127.0.0.1"); - Copier une base de données :
db.copyDatabase("source", "destination", "hôte"); - Réparer la base de données :
db.repairDatabase(); - Vérifier le nom de la base courante :
db.getName();ou simplementdb; - Sattistiques de la base :
db.stats(); - Version de MongoDB :
db.version(); - Adresse de connexion :
db.getMongo();
Gestion des Collections
- Créer une collection :
db.createCollection("clients", { capped: true, size: 102400 }); - Accéder à une collection existante :
db.getCollection("commandes"); - Lister toutes les collections :
db.getCollectionNames(); - Afficher les statistiques des collections :
db.printCollectionStats();
Administration des Utilisateurs
- Créer un utilisateur :
db.addUser("alice");oudb.addUser("bob", "motdepasse", { roles: ["read"] }); - Authentification :
db.auth("alice", "secret"); - Lister les utilisateurs :
show users; - Supprimer un utilisateur :
db.removeUser("alice");
Opérations sur les Collections
Pour explorer les collections, utilisez des commandes comme :
db.articles.help();– aide pour la collection "articles".db.articles.count();– nombre de documents dans la collection.db.articles.dataSize();– taille des données.db.articles.getDB();– base de données associée.db.articles.stats();– statistiques détaillées.db.articles.totalSize();– taille totale de la collection.db.articles.storageSize();– espace de stockage utilisé.db.articles.renameCollection("nouveauNom");– renommer une collection.db.articles.drop();– supprimer la collection.
Requêtes sur les Collections
Les requêtes MongoDB utilisent des méthodes comme find() avec des filtres. Voici des exemples :
- Retourner tous les documents :
db.personnes.find();– équivalent àSELECT * FROM personnes; - Valeurs distinctes :
db.personnes.distinct("nom");– élimine les doublons sur le champ "nom". - Filtre d'égalité :
db.personnes.find({ age: 30 }); - Opérateurs de comparaison :
db.personnes.find({ age: { $gt: 25 } });– âge supérieur à 25.db.personnes.find({ age: { $lt: 30 } });– âge inférieur à 30.db.personnes.find({ age: { $gte: 20, $lte: 40 } });– âge entre 20 et 40 inclus.
- Recherche par expression régulière :
db.personnes.find({ nom: /martin/ });– nom contenant "martin". - Projection de champs :
db.personnes.find({}, { prenom: 1, age: 1 });– affiche seulement "prenom" et "age". - Tri des résultats :
db.personnes.find().sort({ age: 1 });– tri ascendant par âge. - Pagination avec limit et skip :
db.personnes.find().limit(10).skip(20);– sauter 20 documents et en prendre 10. - Requête OR :
db.personnes.find({ $or: [{ age: 25 }, { age: 30 }] }); - Compter les résultats :
db.personnes.find({ age: { $gte: 20 } }).count();
Indexation
- Créer un index :
db.personnes.ensureIndex({ nom: 1 });– index ascendant sur "nom". - Lister les index :
db.personnes.getIndexes(); - Taille totale des index :
db.personnes.totalIndexSize(); - Reconstruire les index :
db.personnes.reIndex(); - Supprimer un index :
db.personnes.dropIndex("nom_1"); - Supprimer tous les index :
db.personnes.dropIndexes();
Modification des Données
-
Insérer un document :
db.utilisateurs.save({ nom: "Dupont", age: 28, actif: true }); -
Mettre à jour des documents :
db.utilisateurs.update({ age: 28 }, { $set: { nom: "Martin" } }, false, true);– change le nom pour les documents avec âge 28.db.utilisateurs.update({ nom: "Dupont" }, { $inc: { age: 5 } }, false, true);– incrémente l'âge de 5.
-
Supprimer des documents :
db.utilisateurs.remove({ age: { $lt: 20 } }); -
Opérations atomiques avec findAndModify : ```
db.utilisateurs.findAndModify({ query: { age: { $gte: 30 } }, sort: { age: -1 }, update: { $set: { statut: "senior" }, $inc: { salaire: 100 } }, remove: false });
Cela combine recherche, tri, mise à jour et option de suppression dans une seule opération.
Blocs de Commandes et Scripting
-
Exécuter du code simple :
print("Bonjour MongoDB !"); -
Convertir un objet en JSON :
tojson({ cle: "valeur" }); -
Boucle pour insérer des données : ```
for (var i = 0; i < 25; i++) { db.produits.save({ nom: "produit_" + i, prix: 10 + i * 2 }); }
-
Utilisation de curseurs : ```
var curseur = db.produits.find(); while (curseur.hasNext()) { printjson(curseur.next()); }
-
Itération avec forEach :
db.produits.find().forEach(function(doc) { printjson(doc); }); -
Traiter les curseurs comme des tablaeux : ```
var tab = db.produits.find().toArray(); printjson(tab[3]);