Amazon redshift 正在红移中加载json数组的内容
我正在设置红移并从mongo导入数据。我已经成功地将json路径文件用于一个简单的文档,但现在需要从包含数组的文档导入Amazon redshift 正在红移中加载json数组的内容,amazon-redshift,Amazon Redshift,我正在设置红移并从mongo导入数据。我已经成功地将json路径文件用于一个简单的文档,但现在需要从包含数组的文档导入 { "id":123, "things":[ { "foo":321, "bar":654 }, { "foo":987, "bar":567 } ] } 如何将上述内容加载到如下表中: select * from things;
{
"id":123,
"things":[
{
"foo":321,
"bar":654
},
{
"foo":987,
"bar":567
}
]
}
如何将上述内容加载到如下表中:
select * from things;
id | foo | bar
--------+------+-------
123 | 321 | 654
123 | 987 | 567
还是有别的办法
我不能只将json数组存储在varchar(max)列中,因为内容可能超过64K。
db.baz.insert({
"myid":123,
"things":[
{
"foo":321,
"bar":654
},
{
"foo":987,
"bar":567
}
]
});
下面将显示所需的字段
db.baz.find({},{“things.foo”:1,“things.bar”:1})
要展平结果集,请像这样使用聚合
db.baz.aggregate(
{"$group": {"_id": "$myid", "things": { "$push" : {"foo":"$things.foo","bar":"$things.bar"}}}},
{
$project : {
_id:1,
foo : "$things.foo",
bar : "$things.bar"
}
},
{ "$unwind" : "$foo" },
{ "$unwind" : "$bar" }
);