← Bancos de dados
MO

MongoDB

Marque MongoDB numa aplicação e ela recebe o próprio nome de banco no MongoDB compartilhado do servidor. Veja exatamente o que isso te dá, o que ainda não cobre, e quando uma instância dedicada faz mais sentido.

O que você ganha

  • MongoDB 7 (mongo:7), compartilhado no servidor: cada aplicação recebe o próprio nome de banco (app_<id>) nessa instância, exposto como MONGODB_URL e os aliases MONGODB_URI, MONGO_URL, MONGOLAB_URI e MONGOHQ_URL que alguns frameworks esperam.
  • Diferente do Postgres e do MySQL, o add-on compartilhado ainda não cria um login separado por aplicação; o isolamento é por nome de banco e pela rede privada do servidor, não por credenciais próprias de cada aplicação.
  • Não faz parte do pipeline de backup agendado, que cobre Postgres, MySQL e ClickHouse. Mover uma aplicação para um servidor de banco de dados copia os dados do MongoDB dela como um passo único, só na mudança.
  • Sem recuperação para um ponto no tempo nem failover automático para o add-on compartilhado; isso cobre Postgres (recuperação para um ponto no tempo) ou Postgres, MySQL e Redis (failover do standby).
  • Aplicações que precisam de um replica set de verdade, para change streams, recebem o próprio container dedicado de MongoDB como parte de uma stack em vez do add-on compartilhado, porque uma única instância compartilhada não consegue oferecer isso.

Como adicionar

  1. 1

    Marque MongoDB ao criar a aplicação

    Em Nova app, ou depois em Editar → Add-ons, marque MongoDB e faça o deploy. O Railyard injeta MONGODB_URL (e os aliases dela) antes de o build rodar.

  2. 2

    Ou adicione pela CLI

    railyard apps create <name> <git-url> --addons mongodb faz a mesma coisa a partir de um terminal.

  3. 3

    Acessando de fora das suas aplicações

    O Trusted addresses, o proxy TCP para se conectar a partir da sua própria máquina, hoje cobre Postgres, MySQL, ClickHouse, Redis e RabbitMQ. O MongoDB ainda não está nessa lista, então consulte-o a partir de outra aplicação no mesmo servidor ou na rede da equipe, ou por SSH direto no servidor.

Um exemplo de um clique

O LibreChat faz o deploy do próprio replica set de MongoDB de um nó só junto com a aplicação, o padrão que o Railyard usa sempre que uma aplicação precisa de change streams em vez do add-on compartilhado. O Rocket.Chat faz a mesma coisa para chat de equipe.

Fazer deploy de LibreChat Plano Free, sem cartão.

Ou faça o deploy de uma instância independente faz o deploy de uma instância MongoDB independente com um usuário root e senha gerados, se for só isso que você precisa.

Perguntas frequentes

Quanto custa o MongoDB no Railyard?
Não existe uma cobrança separada para o add-on compartilhado; ele roda no servidor que você já está pagando. Uma stack como o LibreChat, que empacota o próprio MongoDB dedicado, também roda no mesmo servidor, no mesmo preço do plano.
O add-on de MongoDB entra em backup?
O add-on compartilhado não faz parte dos backups agendados do Railyard, que cobrem Postgres, MySQL e ClickHouse. Uma aplicação MongoDB independente, feita a partir do catálogo de templates, entra em backup do mesmo jeito que o volume de dados de qualquer aplicação, no cronograma que você definir para ela.
Como me conecto de fora, com o Compass ou o mongosh?
O add-on compartilhado é privado à rede do servidor; o Trusted addresses ainda não cobre MongoDB. Faça o deploy de uma instância MongoDB independente em vez disso se precisar apontar o Compass ou o mongosh direto para ela, já que essa recebe credenciais próprias geradas para conectar.
Como eu migro dados de MongoDB já existentes?
Rode mongodump contra o seu banco antigo, depois mongorestore contra o MONGODB_URL gerado depois que o add-on estiver no ar, ou aponte a aplicação para uma connection string externa em Resources enquanto copia os dados.

Tutoriais que usam este banco

Documentação geral