在rails 4应用程序中,Mongoid查询速度太慢

Sha*_*riq 1 ruby-on-rails mongodb mongoid ruby-on-rails-4

我正在使用带有mongoid(4.0.0 alpha1)的rails 4.问题是,当我尝试使用控制器获取记录时

Model.where(:status => 'Active')
Run Code Online (Sandbox Code Playgroud)

这需要太长时间(大约10秒).当我尝试在控制台中查询记录时,问题也一样.Collection有近400多条记录.

但是在mongodb控制台中获取记录

db.collection.find({status: "Active"})
Run Code Online (Sandbox Code Playgroud)

很快

mongoid 4.0.0.alpha1有什么问题吗?有任何建议如何改善rails中的查询响应时间?

提前致谢

Sha*_*riq 8

问题主要是由于嵌入式文档的大小.通过仅加载必填字段来解决问题

Model.only(:name,:created_at)
Run Code Online (Sandbox Code Playgroud)

要么

Model.without(:heavy_embedded_document_name)
Run Code Online (Sandbox Code Playgroud)

我们还修改了数据库结构,以减少嵌入式文档和对象的大小.