我经常将大量数据保存到哈希变量中,或根据条件获取数据.这不方便,所以我想要一个用SQL作为NoSQL访问数据的模块.我找到了
DBD::RAM,但有一个较小的模块吗?
例如:像MySQL表这样的哈希数据:
{
"table": "company",
"rows" : [
{
"name": "baidu",
"location": "China"
},
{
"name": "taobao",
"location": "China"
}
]
}
通常,插入如下记录:
my %new_row = (name=>xxx, location=>yyy);
push (@{$hash->{rows}}, \%new_row);
如果我这样做,会有很多哈希变量,所以我想这样做更像:
$handle->insert('insert into company values("xxx", "yyy")');
my ($name, $location) = $handle->select_unqiue_record(<<"_EOC_";
select name, location from company where name="baidu"
_EOC_);
最佳答案 我推荐
https://metacpan.org/module/DBIx::DataModel.
一旦设置了描述目标表的Schema – 并且您可以通过逆向工程自动执行此操作 – 您可以直接插入哈希,如下所示:
my $table = $schema->table($table_name);
my $id = $table->insert($hash_ref);
实际上,您可以传递DBIx :: DataModel一个hash_refs数组(根据您的问题),它将为您插入每个.请参阅文档:https://metacpan.org/module/DBIx::DataModel#Insert