Introduction
MongoDB est l’une des bases NoSQL orientées documents les plus populaires. Ses atouts : hautes performances d’écriture (idéal pour l’analytique / IoT), haute disponibilité (réplication + failover), scalabilité horizontale (sharding), langage de requête puissant (aggregation, recherche plein-texte, géospatial). Contrairement aux bases relationnelles, chaque enregistrement MongoDB est un document BSON (JSON binaire) que l’application manipule en JSON.Le package
mongodb/laravel-mongodb, maintenu officiellement par MongoDB, est recommandé. Il offre une intégration riche avec Eloquent et les autres composants Laravel.Installation
Driver PHP MongoDB
Nécessite l’extension PHPmongodb. Elle est déjà présente avec Laravel Herd et php.new. Sinon, via PECL :
Démarrer un serveur MongoDB
MongoDB Community Server pour le local. Voir le guide d’installation. Avec Docker :Installer laravel-mongodb
Configuration
Variables d’environnement
config/database.php
Ajoutez la connexion mongodb.
Fonctionnalités
Modèles Eloquent
Héritez deMongoDB\Laravel\Eloquent\Model.
MongoDB étant schémaless, aucune migration n’est nécessaire. La collection est créée à la première écriture.
CRUD
Même API qu’Eloquent classique.Tableaux / documents embarqués
Query Builder
Voir la documentation query builder de laravel-mongodb.Driver de cache
Utilise des index TTL pour la purge automatique. Voir la documentation cache. Ajoutez le store :Driver de queue
Voir la documentation queue.Stockage GridFS
Stockage de fichiers via GridFS avec l’adaptateur Flysystem. Voir la documentation.Recherche vectorielle
MongoDB Atlas Vector Search permet la recherche par similarité sur des embeddings.Uniquement sur MongoDB Atlas. Créez au préalable un index Vector Search dans la console Atlas.
Full text (moteur Scout)
Le moteurmongodb pour Laravel Scout s’appuie sur MongoDB Atlas Search (fuzzy, wildcard…). Voir la documentation.
Uniquement sur MongoDB Atlas. Utilisez une collection distincte pour l’index —
prefix de config/scout.php (par défaut le nom de l’app) s’applique automatiquement.Coexistence avec MySQL
Utilisez les deux en simultané en spécifiant$connection sur chaque modèle.
Pour des relations entre modèles MySQL et MongoDB, voir les relations hybrides.
Récapitulatif
Checklist d'installation
Checklist d'installation
pecl install mongodb(extension PHP)- Démarrer un serveur MongoDB (local, Docker, ou Atlas)
composer require mongodb/laravel-mongodb- Renseigner
MONGODB_URIetMONGODB_DATABASEdans.env - Ajouter la connexion
mongodbdansconfig/database.php
MongoDB vs MySQL
MongoDB vs MySQL
| Caractéristique | MongoDB | MySQL |
|---|---|---|
| Modèle | Document JSON/BSON | Table (lignes/colonnes) |
| Schéma | Sans schéma (flexible) | Fixe |
| Scaling | Horizontal simple | Vertical majoritaire |
| Transactions | Multi-documents (v4+) | ACID complet |
| Usage | Logs, analytique, IoT, structures flexibles | Données structurées, relations complexes |
Points de configuration
Points de configuration
| Fonctionnalité | Configuration |
|---|---|
| Modèles Eloquent | Hériter de MongoDB\Laravel\Eloquent\Model |
| Query Builder | DB::connection('mongodb')->collection(...) |
| Cache | config/cache.php + CACHE_STORE=mongodb |
| Queue | config/queue.php + QUEUE_CONNECTION=mongodb |
| Fichiers | config/filesystems.php + adaptateur GridFS |
| Vector search | Model::query()->vectorSearch(...) (Atlas requis) |
| Full text | SCOUT_DRIVER=mongodb + trait Searchable (Atlas requis) |
Prochaines étapes
Documentation officielle laravel-mongodb
Référence complète Eloquent, Query Builder, relations, etc.
Quick Start
Prise en main rapide de Laravel + MongoDB.
Configuration de base de données
Bases des connexions DB dans Laravel.
Introduction à Eloquent
Fondamentaux de l’ORM Eloquent.