使用 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
您可以按照以下方式进行
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
我创建了 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
您可以按照以下方式进行
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