With Mongoid, you don’t need to manually batch the query.
In Mongoid, Model.all
returns a Mongoid::Criteria
instance. Upon calling #each
on this Criteria, a Mongo driver cursor is instantiated and used to iterate over the records. This underlying Mongo driver cursor already batches all records. By default the batch_size
is 100.
For more information on this topic, read this comment from the Mongoid author and maintainer.
In summary, you can just do this:
Model.all.each do |r|
Sunspot.index(r)
end