Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Agregar Mongoid a una aplicación existente

En esta guía puedes aprender cómo agregar Mongoid a una aplicación existente de Sinatra o Ruby on Rails (Rails). Para aprender a configurar una nueva aplicación que utilice Mongoid, consulta una de las siguientes guías:

Para empezar a usar Mongoid en una aplicación Sinatra existente, sigue los siguientes pasos:

  1. Agregue la dependencia mongoid al Gemfile de su aplicación.

  2. Crea un archivo de configuración config/mongoid.yml y especifica tu objetivo de conexión, como se muestra en el paso Configura el Back End de la guía de Inicio Rápido.

  3. Cree un archivo de aplicación y cargue su archivo de configuración, como se muestra en el paso Ejecutar su aplicación de la Guía de inicio rápido.

  4. Cree modelos de Mongoid para interactuar con sus datos.

Puede añadir Mongoid a una aplicación Rails existente para que se ejecute junto con otros adaptadores de Active Record. Para utilizar una combinación de adaptadores, puedes agregar la dependencia mongoid y completar el archivo de configuración con tu información de conexión para empezar a usar MongoDB en tu aplicación.

Para adaptar una aplicación Rails existente y utilizar solamente Mongoid en lugar de Active Record, es necesario realizar otros cambios de configuración, como se describe en las siguientes secciones.

Agrega la gema mongoid a los Gemfile de tu aplicación:

Gemfile
gem 'mongoid'

Para utilizar Mongoid como el único adaptador de base de datos, remueva o comente cualquier librería RDBMS mencionada en el Gemfile, como sqlite o pg.

A continuación, instala las dependencias ejecutando el siguiente comando:

bundle install

Genere la configuración de Mongoid por defecto ejecutando el siguiente comando:

bin/rails g mongoid:config

Este generador crea el archivo de configuración config/mongoid.yml que se utiliza para configurar la conexión con la implementación de MongoDB y el archivo inicializador config/initializers/mongoid.rb que se puede utilizar para establecer otras opciones.

En el archivo config/mongoid.yml, especifique su cadena de conexión y otras opciones de conexión.

Abre el archivo config/application.rb y examina el contenido. Si el archivo utiliza la instrucción require "rails/all" para cargar todos los componentes de Rails, elimina esta instrucción. Debes añadir una declaración require separada para cada componente de Rails, como se muestra en el siguiente archivo de muestra config/application.rb:

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

Nota

Debido a que dependen de Active Record, los adaptadores ActionText, ActiveStorage, y ActionMailbox no se pueden utilizar junto con Mongoid.

En config/application.rb y en los otros archivos de configuración de tu aplicación, remueve o comenta cualquier referencia a config.active_record y config.active_storage.

Para migrar de Active Record a Mongoid, debes ajustar los modelos existentes de tu aplicación.

Los modelos de Active Record derivan de la clase ApplicationRecord y no tienen definiciones de columnas, mientras que los modelos de Mongoid generalmente no tienen una superclase pero deben incluir el atributo Mongoid::Document.

Al crear modelos Mongoid, puedes definir campos de las siguientes maneras:

Por ejemplo, un modelo básico de Active Record Post puede parecerse a lo siguiente:

aplicación/models/post.rb
class Post < ApplicationRecord
has_many :comments, dependent: :destroy
end

Un modelo de Mongoid similar a Post podría parecerse a lo siguiente:

aplicación/models/post.rb
class Post
include Mongoid::Document
field :title, type: String
field :body, type: String
has_many :comments, dependent: :destroy
end

En lugar de utilizar campos predefinidos, puedes definir el modelo Post utilizando campos dinámicos, como se muestra en el siguiente código:

aplicación/models/post.rb
class Post
include Mongoid::Document
include Mongoid::Attributes::Dynamic
has_many :comments, dependent: :destroy
end

Si ya tienes datos en una base de datos relacional que deseas mover a MongoDB, debes realizar una migración de datos. No es necesario realizar una migración de esquema porque MongoDB no requiere un esquema predefinido para almacenar los datos.

Las herramientas de migración suelen ser específicas para los conjuntos de datos. Aunque Mongoid admite un superconjunto de asociaciones Active Record, las referencias de modelos se almacenan de forma diferente en las colecciones al utilizar Mongoid en comparación con Active Record.

Visita los siguientes recursos para obtener más información sobre la migración de un RDBMS a MongoDB:

El proceso para crear una aplicación API de Rails que utilice Mongoid es casi el mismo que para crear una aplicación normal. La única diferencia es que debes añadir la bandera --api al ejecutar rails new para crear la aplicación. La migración de una aplicación API de Rails a Mongoid sigue el mismo proceso descrito en las secciones anteriores.