Overview
在本指南中,您可以学习;了解在Ruby on Rails应用程序中使用 Mongoid 时自动启用的功能。 本指南还介绍了可在应用程序中启用的 Rails 相关功能。
配置
您可以通过访问 config.mongoid
在主应用程序文件中配置 Mongoid 特定的选项和其他 Rails 环境特定的选项。 mongoid:config
生成器在 config/initializers/mongoid.rb
文件中创建一个初始化程序。
注意
在 config/mongoid.yml
文件中设立的任何选项都优先于其他地方设立的选项。 因此,请尽可能使用 mongoid.yml
作为 Mongoid 配置的默认位置。
以下代码演示了如何通过访问 config.mongoid
创建 Rails 记录器:
module MyApplication class Application < Rails::Application config.mongoid.logger = Logger.new(STDERR, :warn) end end
模型预加载
要设立单个集合继承,Mongoid 必须在开发模式下的每个请求之前预加载所有模型。 这会减慢应用程序的速度,因此如果您不使用任何继承,则可以关闭此功能。
以下代码演示了如何通过将 preload_models
功能设置为 false
来关闭预加载:
config.mongoid.preload_models = false
异常
与 Active Record 类似,Mongoid 将 Rails 配置为自动将某些异常转换为HTTP状态代码。 以下列表提供了 Mongoid 异常和HTTP代码之间的转换:
Mongoid::Errors::DocumentNotFound
:转换为404 Not Found
Mongoid::Errors::Validations
:转换为422 Unprocessable Content
执行时间日志记录
Mongoid 可以将执行数据库命令所花费的时间输出到 Rails 检测事件process_action.action_controller
。 Mongoid 通过驾驶员命令监控获取这些值。 应用程序会记录此时间量和查看时间,如以下输出所示:
Completed 200 OK in 2739ms (Views: 12.6ms | MongoDB: 0.2ms)
此日志记录是在 Rails应用程序中自动设立的。
注意
时间计算
日志条目中指示的时间是MongoDB 部署运行MongoDB操作所需的时间,以及发送命令和从MongoDB Server接收结果所需的时间。 它不包括驾驶员和 Mongoid 生成查询、转换类型或以其他方式进程结果所花费的时间。
Rake 任务
使用 Rails框架时,可以对 Mongoid 使用以下 rake 任务:
db:create_indexes
:从模型中读取所有索引定义,并尝试在数据库中创建索引db:remove_indexes
:删除每个模型的索引db:drop
:删除数据库中除系统集合之外的所有集合db:purge
:从数据库中删除包括索引在内的所有数据db:seed
:从db/seeds.rb
文件为数据库设定种子db:setup
:创建索引并为数据库播种
以下 rake 任务仅出于框架依赖目的而存在,不执行任何操作:
db:test:prepare
db:schema:load
db:create
db:migrate
更多信息
要学习;了解如何设立使用 Mongoid 的新 Rails应用程序,请参阅 快速入门 - Ruby on Rails指南。
要学习;了解如何将 Mongoid 添加到现有 Rails应用程序,请参阅将 Mongoid 添加到现有应用程序指南中的 Rails 应用程序部分。