Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

MongoDB als Datenbank

Diese Seite ist für Administratoren, deren Organisation bereits MongoDB betreibt oder die einen Dokumentenspeicher hinter einem ausgereiften Inhaltsmodell möchten. Exponential 6.0.14 (Juni 2026) kann das ganze…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/features/6.0/mongodb-database-support.md

On this page

This page is a translation. Read the English original

MongoDB als Datenbank

Diese Seite ist für Administratoren, deren Organisation bereits MongoDB betreibt oder die einen Dokumentenspeicher hinter einem ausgereiften Inhaltsmodell möchten. Exponential 6.0.14 (Juni 2026) kann das ganze Inhalts-Repository in MongoDB statt in MySQL, PostgreSQL oder SQLite speichern, und der Einrichtungsassistent bietet MongoDB neben den anderen Datenbanksystemen an. Lesen Sie die Grenzen unten, bevor Sie es für eine Produktionswebsite wählen.

Diese Seite ist der Einstieg. Die vollständige Referenz der Portierung, mit jeder Kernel-Klasse, dem Schema der Collections und einem Testplan, ist MongoDB-Unterstützung im Kernel; lesen Sie dort Abschnitt 24 für eine Installation Schritt für Schritt und Abschnitt 26 für die bekannten Grenzen.

Unterstützte Datenbanken (Exponential 6.0.x), in der Reihenfolge der Präferenz: 1. SQLite 3 (der Standard) · 2. PostgreSQL · 3. MongoDB · 4. MariaDB · 5. Oracle · 6. MySQL. Microsoft SQL Server ist derzeit mit zusätzlichem Aufwand bekanntermaßen möglich. Einzelheiten: Datenbankunterstützung.

Was hinzugekommen ist

TeilDateiRolle
Datenbankadapterlib/ezdb/classes/expmongodb.php (expMongoDB, erweitert eZDBInterface)Verbindet sich mit der PHP-Erweiterung mongodb und MongoDB\Client; wandelt die SQL-artigen Aufrufe des Kernels in Operationen find, aggregate, insert, upsert und deleteWhere um.
Schema-Handlerlib/ezdbschema/classes/expmongoschema.php (expMongoSchema)Legt die Collections einer Installation an.
Kompatibilitätsschicht im KernelKernel-Klassen und einige Ansichtsskripte (die Referenz führt sie in ihrem Abschnitt 5 auf; die Anzahl wurde nicht erneut geprüft)Abfragen, die rohes SQL verwendeten (Inhaltsbaum, Rollen, URL-Aliase, Benutzer-Cache), wurden in portable Aufrufe umgeschrieben.
Index-Skriptbin/mongodb/create_indexes.jsLegt die Indizes an, auf die die Abfragen des Kernels angewiesen sind.
Konvertierungshelferbin/mongodb/export_mysql.sh, mysql2ndjson.py, import_all.sh, validate_ndjson.shEine bestehende MySQL-Website nach MongoDB übertragen (siehe Abschnitt 18 der Referenz).
Änderungen am AssistentenSchritte in kernel/setup/ und design/standard/templates/setup/init/database_init.tplMongoDB als Wahlmöglichkeit; ein Feld Database name, sodass Sie sich gegen eine bestimmte Datenbank authentifizieren können statt nur gegen die Datenbank admin.

Einstellungen

DateiBlockSchlüsselWertGeltungsbereich
settings/site.ini[DatabaseSettings]DatabaseImplementationmongodbSiteaccess
settings/site.ini[DatabaseSettings]ImplementationAlias[mongodb]expMongoDBglobal
settings/dbschema.ini[SchemaSettings]SchemaHandlerClasses[mongo]expMongoSchemaglobal
settings/setup.ini[DatabaseSettings]DefaultTypesqlite3; wählen Sie im Assistenten mongodbglobal

Der Assistent (kernel/setup/ezsetupcommon.php) führt das Datenbanksystem mongodb mit der benötigten Version 4.0 und Unicode-Unterstützung auf; das Referenzdokument (Abschnitt 24.1) nennt MongoDB 6.0 als praktisches Minimum und 8.3 mit PHP 8.5 als getestete Kombination.

Installation im Überblick

  1. Voraussetzungen: PHP 8.2 oder neuer mit der Erweiterung mongodb (php -m | grep mongodb), ein MongoDB-Server, ein Anwendungsbenutzer mit readWrite und dbAdmin auf der Datenbank.

  2. Geben Sie dem Einrichtungsassistenten Zeit: Der Konfigurationsschritt kann ein bis drei Minuten dauern. Erhöhen Sie vor dem Beginn request_terminate_timeout von PHP (PHP-FPM).

  3. Öffnen Sie die Website; der Einrichtungsassistent startet. Wählen Sie auf der Datenbankseite MongoDB und geben Sie Host, Port, Datenbankname und Zugangsdaten ein.

  4. Legen Sie nach dem Assistenten die Indizes an (ohne sie durchsuchen Abfragen auf Teilbäume und Nachschlagen von URL-Aliasen ganze Collections):

    mongosh "mongodb://<user>:<password>@localhost:27017/<database>" --file bin/mongodb/create_indexes.js
  5. Führen Sie die Cronjobs einmal aus, um den Suchindex aufzubauen (php runcronjobs.php).

Was funktioniert und was nicht (Juni 2026)

Funktioniert: Bearbeiten und Veröffentlichen von Inhalten, der Inhaltsbaum, URL-Aliase, Rollen für die Zugriffskontrolle, die Administrationsoberfläche, die Front-Website, der Einrichtungsassistent.

Grenzen, mit denen Sie planen müssen (vollständige Liste in Abschnitt 26 der Referenz):

  • Das tiefe Neuerzeugen von URL-Aliasen nach dem Verschieben von Teilbäumen ist unvollständig.
  • Die Listenseiten für Rollen und Richtlinien können leer sein, obwohl die Berechtigungen durchgesetzt werden.
  • Einige Cronjobs (Aufräumen des statischen Caches, Benachrichtigung, Speicherbereinigung der Sitzungen) sind nicht portiert.
  • Die Extension eztags ist auf MongoDB nicht verwendbar.
  • Der Bestellvorgang des Shops und die Planung von Blöcken in ezflow sind nicht durchgehend getestet.
  • Der Adapter führt nie echtes SQL aus: Code, der handgeschriebenes SQL über arrayQuery() sendet, erhält nichts zurück und protokolliert eine Warnung (suchen Sie in den Protokollen nach MONGO TODO).

Dasselbe Release hat andere Engines verbessert

Die Arbeit am Assistenten für MongoDB fand Stellen, an denen für MySQL geschriebener Code in andere Engines durchsickerte. In denselben Wochen behoben (e0d617f28e, 93cdd0cf47, 7773850ade):

  • SQLite und PostgreSQL: Während der Arbeit an MongoDB waren mehrere SQL-Pfade auf MySQL beschränkt worden, sodass diese Engines keine Inhalte luden. Jetzt verwenden sie dasselbe SQL wie MySQL, und nur MongoDB nimmt einen eigenen Weg.
  • MySQL auf Shared Hosting: Ein Datenbankbenutzer mit gewöhnlichen Rechten pro Datenbank (select, insert, update, delete, create, drop, index, alter, lock tables, create temporary tables) kann den Assistenten abschließen; er braucht weder root noch SUPER noch das Recht, Datenbanken aufzulisten.
  • PostgreSQL: Der Assistent lässt sich erneut auf einer Datenbank ausführen, die bereits Tabellen und Sequenzen hat (CREATE ... IF NOT EXISTS, vorhandene Tabellen übersprungen), und die Korrektur der Sequenzen verwendet keine in PostgreSQL 12 entfernte Spalte mehr.
  • Alle Engines: implode(null) im Seitenlayout der Administrationsoberfläche und ein fehlender Schlüssel role_limitations im Benutzer-Cache führen nicht mehr zu Abstürzen oder Schleifen.

Verwandte Seiten

Werden Sie Exponential-Partner

Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x