Skip to main content

Einführung

MongoDB ist eine der beliebtesten NoSQL-Dokumentendatenbanken. Sie zeichnet sich durch hohe Schreibleistung (ideal für Analytics und IoT), hohe Verfügbarkeit (automatisches Failover per Replica Set), horizontale Skalierung (Sharding) und eine leistungsstarke Query-Sprache (Aggregation, Volltextsuche, Geo-Abfragen) aus. Anders als das Zeilen-/Spalten-Modell in SQL-Datenbanken ist jeder Datensatz in MongoDB ein Dokument im BSON-Format (binäres JSON). Die Anwendung kann diese Daten im JSON-Format lesen.
Für den Einsatz von MongoDB mit Laravel empfehlen wir das offizielle, von MongoDB gepflegte Paket mongodb/laravel-mongodb. Es bietet eine umfassende Integration mit Eloquent und weiteren Laravel-Funktionen.

Installation

MongoDB PHP-Treiber

Um sich mit MongoDB zu verbinden, benötigen Sie die PHP-Erweiterung mongodb. Bei Nutzung von Laravel Herd oder php.new ist sie bereits installiert. Für die manuelle Installation verwenden Sie PECL.
Details zur Installation finden Sie im Installations-Leitfaden der MongoDB-PHP-Erweiterung.
Stellen Sie sicher, dass die PHP-Erweiterung mongodb sowohl für die CLI als auch für den Webserver aktiviert ist. Die Konfigurationen können sich unterscheiden.

MongoDB-Server starten

Für die lokale Entwicklung eignet sich der MongoDB Community Server. Installationshinweise für Windows, macOS, Linux und Docker finden Sie im offiziellen Installationshandbuch. Mit Docker:
Für Cloud-Hosting steht MongoDB Atlas zur Verfügung. Um von lokal auf einen Atlas-Cluster zuzugreifen, müssen Sie Ihre IP-Adresse in die IP-Zugriffsliste des Projekts aufnehmen.

Das Paket laravel-mongodb installieren

Installieren Sie das Paket mongodb/laravel-mongodb mit Composer.

Konfiguration

Umgebungsvariablen

Ergänzen Sie in der .env-Datei die Verbindungsdaten für MongoDB.
Wenn Sie MongoDB Atlas verwenden, ersetzen Sie den Connection-String durch den von Atlas.

config/database.php

Fügen Sie im Array connections in config/database.php eine mongodb-Verbindung hinzu.
Wenn Sie MySQL o. Ä. gemeinsam mit MongoDB einsetzen, lassen Sie default unverändert und fügen einfach die mongodb-Verbindung hinzu. Sie können die Verbindung je Modell wechseln.

Kernfunktionen

Eloquent-Modelle

Indem Sie von MongoDB\Laravel\Eloquent\Model erben, können Sie MongoDB nahezu genauso bedienen wie normale Eloquent-Modelle.
Da MongoDB schemalos ist, sind keine Migrationen nötig. Beim Speichern eines Dokuments wird die Collection automatisch angelegt.

Grundlegende CRUD-Operationen

Sie verwenden dieselbe API wie beim normalen Eloquent.

Arrays und eingebettete Dokumente

Sie können Arrays und eingebettete Dokumente – eine Stärke von MongoDB – direkt verwenden.

Query Builder

Mit dem Query Builder von MongoDB lassen sich komplexe Abfragen formulieren. Details finden Sie in der Query-Builder-Dokumentation von laravel-mongodb.

Cache-Treiber

Der MongoDB-Cache-Treiber nutzt TTL-Indizes und entfernt abgelaufene Einträge automatisch. Siehe die Cache-Treiber-Dokumentation für Details. Fügen Sie in config/cache.php einen Store hinzu.
Stellen Sie in der .env den Cache-Treiber auf MongoDB.

Queue-Treiber

Sie können MongoDB als Queue-Treiber verwenden. Details finden Sie in der Queue-Treiber-Dokumentation. Fügen Sie in config/queue.php die Verbindung hinzu.
Setzen Sie die Queue-Verbindung in der .env auf MongoDB.

Dateispeicherung mit GridFS

Mit GridFS von MongoDB können Sie Dateien speichern. Verwendet wird der GridFS-Adapter für Flysystem. Details siehe GridFS-Dokumentation.
Fügen Sie in config/filesystems.php einen Disk hinzu.
Mit MongoDB Atlas Vector Search können Sie Ähnlichkeitssuchen über Vektor-Embeddings durchführen. Sie speichern zum Beispiel Text-, Bild- oder Audio-Daten als Vektoren und finden die dem Query-Vektor am nächsten liegenden Dokumente – ein Suchfeature für KI und Machine Learning.
Die Vektorsuche ist ausschließlich auf MongoDB Atlas verfügbar. In einem lokalen MongoDB Community Server oder in selbst gehosteten Umgebungen lässt sie sich nicht verwenden. Sie müssen vorab in der Atlas-Konsole einen Vector-Search-Index anlegen.
Die Methode vectorSearch steht am Query Builder zur Verfügung.

Volltextsuche (Scout-Engine)

Mit der Scout-Engine mongodb können Sie die Volltextsuche von Laravel Scout mit MongoDB nutzen. Intern wird MongoDB Atlas Search verwendet – inklusive Unterstützung für Fuzzy- und Wildcard-Suche. Details finden Sie in der Scout-Engine-Dokumentation.
Auch die MongoDB-Scout-Engine ist nur auf MongoDB Atlas verfügbar. Die Scout-Index-Collection muss eine andere Collection sein als die des Modells. Die Einstellung prefix in config/scout.php (standardmäßig der App-Name) wird automatisch angewendet.
Stellen Sie den Scout-Treiber in der .env auf mongodb.
Fügen Sie dem Modell das Trait Searchable hinzu.
Legen Sie den Scout-Index an und importieren Sie die vorhandenen Daten.
Suchen können Sie mit der Standard-API von Scout.

Zusammen mit MySQL nutzen

In Laravel können MySQL und MongoDB parallel verwendet werden. Pro Modell geben Sie die Verbindung über die Eigenschaft $connection an.
Wenn Sie Beziehungen zwischen MySQL- und MongoDB-Modellen abbilden möchten, siehe Hybride Beziehungen.

Zusammenfassung

  1. PHP-Erweiterung mit pecl install mongodb installieren
  2. MongoDB-Server starten (lokal, per Docker oder Atlas)
  3. Paket mit composer require mongodb/laravel-mongodb installieren
  4. MONGODB_URI und MONGODB_DATABASE in der .env setzen
  5. mongodb-Verbindung in config/database.php hinzufügen

Nächste Schritte

Offizielle Dokumentation von laravel-mongodb

Vollständige Referenz zu Eloquent, Query Builder, Beziehungen und mehr

Schnellstart

Die Grundlagen von MongoDB mit Laravel schnell lernen

Datenbank-Konfiguration

Grundlagen zur Konfiguration von Datenbankverbindungen in Laravel

Einführung in Eloquent

Grundlegende Nutzung des Eloquent ORM
Zuletzt geändert am 13. Juli 2026

Verwandte Themen

Suche