Skip to main content

Introductie

MongoDB is een van de populairste NoSQL-documentgeoriënteerde databases. Kenmerkend zijn de hoge schrijfprestaties (ideaal voor analytics en IoT), hoge beschikbaarheid (automatische failover via replica sets), horizontale schaalbaarheid (sharding) en een krachtige querytaal (aggregaties, full-text search en geospatiale query’s). Anders dan het rij-kolomformaat van SQL-databases is elk record in MongoDB een document in BSON-formaat (binaire JSON). Je applicatie kan deze data ophalen in JSON-formaat.
Als je MongoDB met Laravel gebruikt, raden we de mongodb/laravel-mongodb-package aan, die officieel door MongoDB wordt onderhouden. Deze package biedt een rijke integratie met Eloquent en andere Laravel-features.

Installatie

MongoDB PHP-driver

Om verbinding te maken met MongoDB heb je de mongodb PHP-extensie nodig. Gebruik je Laravel Herd of php.new, dan is deze al geïnstalleerd. Handmatig installeren doe je met PECL:
Zie de installatiegids voor de MongoDB PHP-extensie voor installatiedetails.
Controleer of de mongodb PHP-extensie zowel voor de CLI als voor de webserver is ingeschakeld. De configuratie kan verschillen.

De MongoDB-server starten

Voor lokale ontwikkeling kun je MongoDB Community Server gebruiken. Zie de officiële installatiegids voor installatie op Windows, macOS, Linux en Docker. Met Docker:
Voor hosting in de cloud kun je MongoDB Atlas gebruiken. Om vanaf je lokale machine toegang te krijgen tot een Atlas-cluster moet je je eigen IP-adres toevoegen aan de IP-toegangslijst van het project.

De laravel-mongodb-package installeren

Installeer de mongodb/laravel-mongodb-package met Composer:

Configuratie

Omgevingsvariabelen

Voeg de MongoDB-verbindingsgegevens toe aan je .env-bestand:
Gebruik je MongoDB Atlas, verander de connection string dan naar die van Atlas:

config/database.php

Voeg een mongodb-verbinding toe aan de connections-array in config/database.php:
Gebruik je een relationele database zoals MySQL tegelijk met MongoDB, dan hoef je alleen de mongodb-verbinding toe te voegen en kun je default gewoon laten staan. Je kunt per model van verbinding wisselen.

Belangrijkste features

Eloquent-models

Door te erven van MongoDB\Laravel\Eloquent\Model werk je met MongoDB op vrijwel dezelfde manier als met een gewoon Eloquent-model.
MongoDB is schemaloos, dus migrations zijn niet nodig. Zodra je een document opslaat, wordt de collection automatisch aangemaakt.

Basis-CRUD-operaties

Je gebruikt dezelfde API als bij gewone Eloquent-models:

Arrays en embedded documents

Arrays en embedded documents — de kracht van MongoDB — kun je direct gebruiken:

Query builder

Met de query builder van MongoDB kun je complexe query’s schrijven. Zie de laravel-mongodb query builder-documentatie voor meer details.

Cache-driver

De cache-driver van MongoDB gebruikt TTL-indexes om verlopen entries automatisch te verwijderen. Zie de cache-driver-documentatie voor meer details. Voeg een store toe in config/cache.php:
Zet de cache-driver in .env op MongoDB:

Queue-driver

Je kunt MongoDB gebruiken als queue-driver. Zie de queue-driver-documentatie voor meer details. Voeg een verbinding toe in config/queue.php:
Zet de queue-verbinding in .env op MongoDB:

Bestandsopslag met GridFS

Je kunt bestanden opslaan met GridFS van MongoDB. Hiervoor gebruik je de GridFS-adapter voor Flysystem. Zie de GridFS-documentatie voor meer details.
Voeg een disk toe in config/filesystems.php:
Met MongoDB Atlas Vector Search kun je op basis van vector-embeddings zoeken naar vergelijkbare documenten. Je slaat data zoals tekst, afbeeldingen en audio op als vectoren en haalt vervolgens de documenten op die het dichtst bij de queryvector liggen — een zoekfunctie gericht op AI en machine learning.
Vector search is alleen beschikbaar op MongoDB Atlas. Het werkt niet met een lokale MongoDB Community Server of een self-hosted omgeving. Je moet vooraf een Vector Search-index aanmaken in de Atlas-console.
De vectorSearch-methode is beschikbaar op de query builder:

Full-text search (Scout-engine)

Met de mongodb Scout-engine kun je de full-text search van Laravel Scout gebruiken met MongoDB. Intern wordt MongoDB Atlas Search gebruikt, met ondersteuning voor fuzzy search en wildcard search. Zie de Scout-engine-documentatie voor meer details.
De MongoDB Scout-engine is eveneens alleen beschikbaar op MongoDB Atlas. De indexcollection van Scout moet een andere collection zijn dan die van het model. De prefix-instelling in config/scout.php (standaard de appnaam) wordt automatisch toegepast.
Zet de Scout-driver in .env op mongodb:
Voeg de Searchable-trait toe aan je model:
Maak de Scout-index aan en importeer bestaande data:
Je zoekt met de standaard Scout-API:

Gecombineerd gebruik met MySQL

In Laravel kun je MySQL en MongoDB tegelijk gebruiken. Je geeft per model de verbinding op met de $connection-property.
Wil je relaties tussen MySQL-models en MongoDB-models, raadpleeg dan hybride relaties.

Samenvatting

  1. Installeer de PHP-extensie met pecl install mongodb
  2. Start de MongoDB-server (lokaal, via Docker of Atlas)
  3. Installeer de package met composer require mongodb/laravel-mongodb
  4. Stel MONGODB_URI en MONGODB_DATABASE in in .env
  5. Voeg de mongodb-verbinding toe aan config/database.php

Volgende stappen

Officiële laravel-mongodb-documentatie

Gedetailleerde referentie voor alle features, waaronder Eloquent, de query builder en relaties

Quickstart

Leer snel de basis van MongoDB met Laravel

Databaseconfiguratie

De basis van databaseverbindingen configureren in Laravel

Introductie tot Eloquent

De basis van het Eloquent ORM
Laatst gewijzigd op 6 september 2026

Gerelateerde onderwerpen

Zoeken