Method: OccamsRecord::Query#find_each
- Defined in:
- lib/occams-record/query.rb
#find_each(batch_size: 1000, use_transaction: true, append_order_by: nil) {|OccamsRecord::Results::Row| ... } ⇒ Enumerator
Load records in batches of N and yield each record to a block if given. If no block is given, returns an Enumerator.
NOTE Unlike ActiveRecord’s find_each, ORDER BY is respected. The primary key will be appended to the ORDER BY clause to help ensure consistent batches. Additionally, it will be run inside of a transaction.
177 178 179 180 181 182 183 184 185 186 187 188 |
# File 'lib/occams-record/query.rb', line 177 def find_each(batch_size: 1000, use_transaction: true, append_order_by: nil) enum = Enumerator.new { |y| find_in_batches(batch_size: 1000, use_transaction: use_transaction, append_order_by: append_order_by).each { |batch| batch.each { |record| y.yield record } } } if block_given? enum.each { |record| yield record } else enum end end |