【问题标题】:Optimize query mongodb/mongoid优化查询 mongodb/mongoid
【发布时间】:2013-03-15 17:11:50
【问题描述】:
class Job
  field :occupation, :type => String
  field :experience, :type => String
end

在我的 api 文件中:

get :searches do
  Cv.search({query: "*#{params[:q]}*"}).map{ |cv| {id: cv.id, text: cv.occupation } }
end

这会生成一个json文件:

[{"id":"513dbb61a61654a845000005","text":"industrial engineer"},{"id":"513a11d4a6165411b2000008","text":"javascript engineer"}]

我使用 mongodb 作为数据库,使用 mongoid 作为 orm/odm。

这适用于 10 或 100 或 1000 个结果,但我的问题是是否可以针对大型数据集合优化 api 查询 *1.000.000 2.000.000 个结果。*

【问题讨论】:

标签: ruby-on-rails ruby ruby-on-rails-3 mongodb mongoid


【解决方案1】:

根据您的查询,如果您想在 occupation 上查询,您需要在 occupation 上创建索引

class Job
  include Mongoid::Document
  field :occupation, :type => String
  field :experience, :type => String
  index({ occupation: 1 })
end

Mongoid 会自动在 _id 上创建和索引,因此如果您始终在查询中包含它,它将保持快速,除非您的数据库索引开始超过可用内存。

Job.where(:occupation => "javascript engineer") 将使用索引

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-21
    • 2015-01-09
    • 2015-03-06
    • 1970-01-01
    • 2014-01-17
    • 1970-01-01
    • 1970-01-01
    • 2022-11-13
    相关资源
    最近更新 更多