迭代“大”集合时Rails 4和Mongo DB 4.x错误

时间:2015-10-13 12:30:22

标签: ruby mongodb ruby-on-rails-4 mongoid mongodb-query

让Mongo支持的模型有大约800-900条记录我正在尝试迭代并使用一些属性生成CSV。

所以它看起来像这样:

each do |car|
  csv << columns.map { |column| car.__send__(column) }
end

我得到的错误是这样的:

A Moped::Errors::QueryFailure occurred in cars#index:

  The operation: #<Moped::Protocol::Query
  @length=94
  @request_id=376
  @response_to=0
  @op_code=2004
  @flags=[]
  @full_collection_name="app555555.cars"
  @skip=0
  @limit=0
  @selector={"$query"=>{}, "$orderby"=>{"created_at"=>-1}}
  @fields=nil>
failed with error 10128: "too much data for sort() with no index.  add an index or specify a smaller limit"

See https://github.com/mongodb/mongo/blob/master/docs/errors.md
for details about this error.
  app/models/car.rb:84:in `block in to_csv'

1 个答案:

答案 0 :(得分:1)

你可能缺少索引。以下是有关在mongo DB When to index, what to index in Mongoid?http://docs.mongodb.org/ecosystem/tutorial/ruby-mongoid-tutorial/#id12

中添加索引的更多信息