使用 ActiveRecord 批量获取数据

Get data in batch using ActiveRecord

我创建了 Rails APP,我想从特定点开始获取数据批次。我使用 AR,我的 table 结构如下所示:

create_table(:types) do |t|
  t.string      :name,      null: false
  t.string      :type,      null: false
  t.string      :type_id,   null: false
  t.text        :metadata
  t.timestamps
end

为了获取数据,我使用 type_id 格式如下 (GUID):

"b2d506fd-409d-4ec7-b02f-c6d2295c7edd"

我想从特定 type_id 开始获取特定数量的数据,升序或降序。更具体地说,我想做这样的事情:

Model.get_batch(type_id: type, count: 20).desc 

我可以简单地在 ActiveRecord 中完成吗?

您可以使用ActiveRecord::Batches批量查找记录

例子

Model.where('your condition').find_in_batches(start: 2000, batch_size: 2000) do |group|
  # do something with batch
end

同时检查 ActiveRecord::Batches.find_in_batch

您可以按照以下方式进行

Model.find_by_type_id(type).offset(batch_offset).limit(amount_in_batch)

或如上回答

Model.where(type_id: your_value).find_in_batches(start: 2000, batch_size: 2000) do |group|
  # do something with batch
end