Pular para o conteúdo

MongoDB

O @rebasepro/server-mongo implementa o BackendBootstrapper do Rebase no MongoDB. A API REST, o SDK gerado, o painel de administração e a superfície de autenticação funcionam perfeitamente sobre ele.

pnpm add @rebasepro/server-mongo
import { rebase } from "@rebasepro/server";
import { createMongoBootstrapper } from "@rebasepro/server-mongo";
rebase({
backend: createMongoBootstrapper({ url: process.env.DATABASE_URL! })
});

Defina DATABASE_URL com uma string de conexão do MongoDB (mongodb://… ou mongodb+srv://…).

API de Dados Toda a superfície REST: list, get, create, update, delete, filtros, ordenação, paginação
SDK Gerado O mesmo cliente tipado do Postgres
Realtime Change streams. Requer um replica set — uma instância standalone do mongod não possui oplog para monitorar, portanto o realtime fica silenciosamente indisponível nesse caso
Histórico Baseado em snapshots, no mesmo formato do Postgres
Autenticação Toda a superfície de autenticação, com seus repositórios armazenados no MongoDB
Painel de administração Coleções, formulários, relações na UI, campos de armazenamento
  • Sem segurança em nível de linha. Veja o aviso acima. Este é o ponto mais importante.
  • Sem superfície SQL. O editor SQL do Studio, o editor de políticas RLS e o pnpm rls:check são recursos do Postgres e não estão disponíveis.
  • Sem integridade relacional. Uma relação é uma referência armazenada que a aplicação resolve; não há chave estrangeira, portanto nada a nível de banco de dados impede uma referência órfã (dangling).
  • Sem rebase db push / generate / migrate. O MongoDB não possui schema para migrar. As coleções são criadas à medida que os documentos são gravados.

Escolha o MongoDB quando os dados tiverem genuinamente a estrutura de documentos e o modelo de autorização residir de qualquer forma na sua aplicação. Escolha o PostgreSQL quando quiser que o próprio banco de dados seja o responsável por impor quem vê qual linha — que é o argumento que o Rebase defende em todos os outros lugares deste site.