我有 JSON 文档以 JSON 数据类型 (Postgres 9.3) 存储在 Postgres 中,并且我需要递归地收集树中的键名称。
例如,给定这个 JSON 树
{
"files": {
"folder": {
"file1": {
"property": "blah"
},
"file2": {
"property": "blah"
},
"file3": {
"property": "blah"
},
"file4": {
"property": "blah"
}
}
},
"software": {
"apt": {
"package1": {
"version": 1.2
},
"package2": {
"version": 1.2
},
"package3": {
"version": 1.2
},
"package4": {
"version": 1.2
}
}
}
}
我想提取类似 [file1,file2,file3,file3,package1,package2,package3,package4] 的内容
基本上只是我可以用于文本搜索索引的键列表。
我知道我可以使用类似的方法获得最外面对象上的键列表
SELECT DISTINCT(json_object_keys(data))
我知道可以使用类似的东西递归地爬过树
WITH RECURSIVE data()
但我很难将两者放在一起。
有人可以帮忙吗?