Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs 菜单
Docs 主页
/ / /
Mongoid
/

Rails 集成

在本指南中,您可以学习;了解在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 生成查询、转换类型或以其他方式进程结果所花费的时间。

使用 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 应用程序部分。

后退

将 Mongoid 添加到现有应用程序

在此页面上