Visão geral
Neste guia, você pode aprender como adicionar Mongoid a um aplicação Sinatra ou Ruby on Rails (Rails) existente. Para saber como configurar um novo aplicação que usa o Mongoid, consulte um dos seguintes guias:
Aplicativo Sinatra
Para começar a usar o Mongoid em um aplicação Sinatra existente, execute as seguintes etapas:
Adicione a dependência
mongoidaoGemfiledo seu aplicativo.Crie um arquivo de configuração
config/mongoid.ymle especifique seu destino de conexão, como mostrado na etapa Configurar sua conexão MongoDB - Sinatra do guia Início Rápido.Crie um arquivo do aplicação e carregue seu arquivo de configuração, conforme mostrado na etapa Visualizar Dados MongoDB - Sinatra do guia Início Rápido.
Crie modelos Mongoid para interagir com seus dados.
Aplicativo Rails
Você pode adicionar o Mongoid a um aplicação Rails existente para ser executado junto com outros adaptadores do Active Record. Para usar uma combinação de adaptadores, você pode adicionar a dependência mongoid e preencher o arquivo de configuração com suas informações de conexão para começar a usar o MongoDB em seu aplicação.
Para adaptar um aplicação Rails existente para usar apenas Mongoid em vez do Active Record, você deve fazer outras alterações de configuração, conforme descrito nas seções a seguir.
Modificar dependências
Adicione o gem mongoid ao Gemfile do seu aplicativo:
gem 'mongoid'
Para usar o Mongoid como o único adaptador de banco de dados , remova ou comente quaisquer bibliotecas RDBMS listadas Gemfile no, como sqlite pgou.
Em seguida, instale as dependências executando o seguinte comando:
bundle install
Configuração do Mongoide
Gere a configuração Mongoide padrão executando o seguinte comando:
bin/rails g mongoid:config
Este gerador cria o arquivo de configuração config/mongoid.yml utilizado para configurar a conexão com a implantação do MongoDB e o arquivo inicializador config/initializers/mongoid.rb que você pode utilizar para configurar outras opções.
No arquivo config/mongoid.yml, especifique sua string de conexão e outras opções de conexão.
Modificar estruturas
Abra o arquivo config/application.rb e examine o conteúdo. Se o arquivo usar a instrução require "rails/all" para carregar todos os componentes do Rails, exclua esta instrução. Você deve adicionar uma instrução require separada para cada componente Rails, como mostrado no seguinte arquivo de amostra config/application.rb:
# Remove or comment out rails/all #require "rails/all" # Add the following instead of rails/all: require "rails" # Comment out unneeded frameworks # require "active_record/railtie" rescue LoadError # require "active_storage/engine" rescue LoadError require "action_controller/railtie" rescue LoadError require "action_view/railtie" rescue LoadError require "action_mailer/railtie" rescue LoadError require "active_job/railtie" rescue LoadError require "action_cable/engine" rescue LoadError # require "action_mailbox/engine" rescue LoadError # require "action_text/engine" rescue LoadError require "rails/test_unit/railtie" rescue LoadError
Observação
Como dependem do Active Record, os adaptadores ActionText, ActiveStorage e ActionMailbox não podem ser usados junto com o Mongoid.
Desabilitar adaptadores de registro ativo
Em config/application.rb e nos outros arquivos de configuração do seu aplicativo, remova ou comente quaisquer referências a config.active_record e config.active_storage.
Ajustar modelos
Para migrar do uso do Active Record para o Mongoid, você deve ajustar os modelos existentes do seu aplicativo.
Os modelos Active Record derivam da classe ApplicationRecord e não têm definições de coluna, enquanto os modelos Mongoid geralmente não têm superclasse, mas devem incluir o atributo Mongoid::Document.
Ao criar modelos Mongoid, você pode definir campos das seguintes maneiras:
Definir campos explicitamente
Usar campos dinâmicos
Por exemplo, um modelo básico do Active Record Post pode se assemelhar ao seguinte:
class Post < ApplicationRecord has_many :comments, dependent: :destroy end
Um modelo Mongoide Post semelhante pode se assemelhar ao seguinte:
class Post include Mongoid::Document field :title, type: String field :body, type: String has_many :comments, dependent: :destroy end
Em vez de utilizar campos predefinidos, você pode definir o modelo Post utilizando campos dinâmicos, como mostrado no seguinte código:
class Post include Mongoid::Document include Mongoid::Attributes::Dynamic has_many :comments, dependent: :destroy end
Migração de dados
Se você já tiver dados em um banco de dados relacional que deseja mover para o MongoDB, deverá executar uma migração de dados. Você não precisa realizar a migração de esquema porque o MongoDB não exige um esquema predefinido para armazenar os dados.
As ferramentas de migração geralmente são específicas para conjuntos de dados. Embora o Mongoid ofereça suporte a um superconjunto de associações do Active Record, as referências do modelo são armazenadas de forma diferente nas collections ao usar o Mongoid em comparação com o Active Record.
Visite os seguintes recursos para saber mais sobre como migrar de um RDBMS para MongoDB:
Guia de migração do RDBMS para o MongoDB na documentação do Amazon Web Services
Modernize seus aplicativos com o MongoDB Atlas no site do MongoDB
API do Rails
O processo para criar um aplicação de API Rails que use Mongoid é quase o mesmo usado para criar um aplicação normal. A única diferença é que você deve adicionar o sinalizador --api ao executar o rails
new para criar o aplicação. A migração de um aplicação da API Rails para o Mongoid segue o mesmo processo descrito nas seções anteriores.