MongoDB MongoDB est une base de données NoSQL orientée documents, conçue pour la scalabilité et la flexibilité. Ce guide répertorie les commandes essentielles et les bonnes pratiques.
Commande Description mongoshDémarrer le shell MongoDB mongosh "mongodb://localhost:27017"Se connecter avec une URI show dbs ou show databasesLister toutes les bases de données use nom_dbBasculer vers une base de données dbAfficher la base de données courante db.getName()Obtenir le nom de la base courante exit ou quit()Quitter le shell MongoDB clsEffacer l'écran db.getMongo()Obtenir l'objet de connexion
Commande Description show collectionsLister toutes les collections db.getCollectionNames()Lister les collections (format array) db.collection.countDocuments()Compter les documents db.collection.estimatedDocumentCount()Estimation rapide du nombre db.collection.stats()Statistiques détaillées db.collection.dataSize()Taille des données db.collection.totalIndexSize()Taille des index db.collection.getIndexes()Lister les index db.stats()Statistiques de la base db.serverStatus()État du serveur
Commande Description show usersLister les utilisateurs de la DB show rolesLister les rôles disponibles db.getUsers()Détails des utilisateurs db.getRoles()Détails des rôles db.currentOp()Opérations en cours db.killOp(opid)Tuer une opération db.version()Version de MongoDB db.hostInfo()Informations sur l'hôte
Commande Description helpAide générale db.help()Aide sur les méthodes de base db.collection.help()Aide sur les méthodes de collection db.collection.find().help()Aide sur les curseurs load("script.js")Charger un script JavaScript print()Afficher dans la console printjson()Afficher en format JSON typeofType d'une variable
// Insertion simple
db.users. insertOne ({ name: "Jean" , email: "jean@example.com" , age: 30 });
// Insertion multiple
db.users. insertMany ([
{ name: "Alice" , email: "alice@example.com" , tags: [ "premium" ] },
{ name: "Bob" , email: "bob@example.com" , age: 35 },
]);
// Bulk Insert pour performance
db.logs. bulkWrite ([
{ insertOne: { document: { event: "login" , timestamp: new Date () } } },
]);
// Recherche basique
db.users. find ({ age: { $gte: 25 } });
db.users. findOne ({ email: "alice@example.com" });
// Opérateurs de requête
db.products. find ({ $or: [{ price: { $lt: 100 } }, { category: "tech" }] });
db.users. find ({ tags: { $all: [ "premium" , "active" ] } });
db.users. find ({ "address.city" : "Paris" });
// Curseur et méthodes
db.users. find (). sort ({ age: - 1 }). limit ( 10 ). skip ( 20 );
db.users. countDocuments ({ age: { $gte: 25 } });
// UpdateOne/UpdateMany
db.users. updateOne (
{ email: "jean@example.com" },
{ $set: { age: 31 , updatedAt: new Date () } }
);
// Opérateurs essentiels
db.products. updateOne ({ name: "Laptop" }, { $inc: { stock: - 1 } });
db.users. updateOne ({ email: "alice@example.com" }, { $push: { tags: "vip" } });
db.users. updateOne (
{ email: "alice@example.com" },
{ $addToSet: { tags: "newsletter" } }
);
// Upsert
db.users. updateOne (
{ email: "new@example.com" },
{ $set: { name: "Nouveau User" } },
{ upsert: true }
);
// Suppression simple
db.users. deleteOne ({ email: "test@example.com" });
db.users. deleteMany ({ status: "inactive" });
// Suppression avec condition
db.logs. deleteMany ({
timestamp: { $lt: new Date (Date. now () - 30 * 24 * 60 * 60 * 1000 ) },
});
// FindOneAndDelete
db.users. findOneAndDelete ({ email: "old@example.com" });
Ce guide est un document vivant. N'hésitez pas à le compléter avec vos propres découvertes et cas d'usage !