MongoDB
| Fiche express | |
|---|---|
| Type | SGBD NoSQL orienté documents |
| Format de stockage | BSON (JSON binaire) |
| Port par défaut | 27017/tcp |
| Shell | mongosh (mongo, historique)
|
| Voir aussi | Mongo cli · Mongo init · Mongodb php |
MongoDB est un système de gestion de bases de données NoSQL orienté documents : les données sont stockées sous forme de documents BSON (variante binaire de JSON) regroupés en collections, l'équivalent approximatif des tables en SQL, mais sans schéma rigide imposé au niveau du moteur.
Présentation
Contrairement à un SGBD relationnel, MongoDB ne force pas de schéma fixe : deux documents d'une même collection peuvent avoir des champs différents. La contrepartie est que la cohérence des champs (validation, types) devient une responsabilité applicative, sauf à activer des règles de validation de schéma côté serveur (à vérifier selon la version).
Installation
Sur les distributions anciennes, un paquet mongodb était disponible directement
dans les dépôts (Debian/Ubuntu) :
apt-get install mongodb
Ce paquet est aujourd'hui obsolète/retiré des dépôts récents. Pour une installation moderne,
utiliser le dépôt officiel MongoDB (paquets mongodb-org) ou une image conteneur
officielle plutôt qu'un paquet distribution générique — la version packagée par la distribution
accuse en général un retard important sur les versions supportées.
Certains environnements historiques installaient MongoDB par simple décompression d'une archive binaire officielle (sans gestionnaire de paquets) :
mkdir /usr/local/mongodb
# puis décompression de l'archive téléchargée dans ce répertoire
Dans ce cas, un script d'init dédié gère le démarrage du démon — voir Mongo init.
Réplication
Ancien mode maître/esclave (obsolète)
Les toutes premières versions de MongoDB proposaient un mode de réplication maître/esclave
configuré directement dans /etc/mongodb.conf :
# Sur le maître
logpath = /var/log/mongodb/mongod.log
dbpath = /var/lib/mongodb/
logappend = true
bind_ip = 0.0.0.0
master = true
# Sur l'esclave
logpath = /var/log/mongodb/mongod.log
dbpath = /var/lib/mongodb/
source = 192.168.1.10:27017
logappend = true
bind_ip = 0.0.0.0
slave = true
autoresync = true
Ce mode est obsolète : il a été remplacé par les replica sets dès les versions 1.6+, puis totalement retiré des versions récentes de MongoDB. Il ne doit plus être utilisé sur une installation actuelle — cette section est conservée à titre historique uniquement.
Replica sets (approche moderne)
Pour la haute disponibilité, l'approche actuelle est un replica set : un groupe de
processus mongod maintenant la même donnée, avec élection automatique d'un nœud
primaire et bascule (failover) en cas de panne. (à vérifier / hors périmètre de cette page) :
se référer à la documentation officielle pour la mise en place (rs.initiate(),
rs.add()...).
Interface web historique
Les anciennes versions exposaient une interface HTTP basique de statut sur le port suivant :
http://IP_ADDRESS:28017/
Cette interface a été retirée des versions récentes. Si elle est encore présente sur une instance ancienne : ne jamais l'exposer sans restriction réseau, elle ne dispose d'aucune authentification.
Outils d'administration graphique (historiques)
Quelques interfaces web front-end à MongoDB ont existé (phpMoAdmin, Opricot...) (à vérifier — projets anciens, statut de maintenance incertain). Pour un usage actuel, préférer MongoDB Compass (officiel) ou le shell mongosh.
Pilotes et intégrations
- Mongodb php — driver PHP (historique et moderne)
- Mongo cli — shell interactif, commandes de référence
Documentation
- https://www.mongodb.com/docs/ — documentation officielle
- https://fr.wikipedia.org/wiki/MongoDB
Voir aussi
- Mongo cli — shell mongo/mongosh, commandes de référence
- Mongo init — script de démarrage historique (SysV)
- Mongodb php — intégration PHP
- Sql — comparaison avec le modèle relationnel