MongoDB
@rebasepro/server-mongo implementiert Rebase’s BackendBootstrapper für
MongoDB. Die REST-API, das generierte SDK, das Admin-Panel und die Auth-Oberfläche
funktionieren alle darüber.
Installation
Abschnitt betitelt „Installation“pnpm add @rebasepro/server-mongoimport { rebase } from "@rebasepro/server";import { createMongoBootstrapper } from "@rebasepro/server-mongo";
rebase({ backend: createMongoBootstrapper({ url: process.env.DATABASE_URL! })});Setzen Sie DATABASE_URL auf einen MongoDB-Verbindungsstring
(mongodb://… oder mongodb+srv://…).
Was funktioniert
Abschnitt betitelt „Was funktioniert“| Daten-API | Der gesamte REST-Umfang: List, Get, Create, Update, Delete, Filter, Sortierung, Paginierung |
| Generiertes SDK | Derselbe typisierte Client wie bei Postgres |
| Echtzeit | Change Streams. Dies erfordert ein Replica Set – ein eigenständiger mongod hat kein Oplog zum Auslesen, daher ist Echtzeit dort stillschweigend nicht verfügbar |
| Historie | Snapshot-basiert, in der gleichen Form wie bei Postgres |
| Auth | Der gesamte Auth-Umfang, wobei die Repositories in MongoDB gespeichert werden |
| Admin-Panel | Collections, Formulare, Relationen in der UI, Storage-Felder |
Was anders ist
Abschnitt betitelt „Was anders ist“- Keine Row-Level Security. Siehe Warnung oben. Dies ist der entscheidende Punkt.
- Keine SQL-Oberfläche. Der SQL-Editor von Studio, der RLS-Policy-Editor und
pnpm rls:checksind Postgres-Funktionen und stehen nicht zur Verfügung. - Keine relationale Integrität. Eine Relation ist eine gespeicherte Referenz, die von der Anwendung aufgelöst wird; es gibt keinen Fremdschlüssel, sodass auf Datenbankebene nichts das Entstehen verwaister Referenzen verhindert.
- Kein
rebase db push/generate/migrate. MongoDB hat kein Schema zum Migrieren. Collections entstehen, sobald Dokumente geschrieben werden.
Die Wahl zwischen beiden
Abschnitt betitelt „Die Wahl zwischen beiden“Wählen Sie MongoDB, wenn die Daten tatsächlich dokumentbasiert sind und das Autorisierungsmodell ohnehin in Ihrer Anwendung liegt. Wählen Sie PostgreSQL, wenn die Datenbank selbst durchsetzen soll, wer welche Zeile sieht – was das Argument ist, das Rebase an jeder anderen Stelle auf dieser Website vertritt.