我可以选择json字段的所有相同字段,而不管它们的路径如何

时间:2019-05-28 06:53:44

标签: json postgresql jsonb

我在postgres的json数据类型列中存储了很多json文件。现在,在很多地方都可以应用关键的“警告”。不幸的是,我无法获得json模式,因此我无法提前知道确切的所有警告键可以显示在哪里。所以我想做这样的事情:

select report #> '{*,warning}' from foo;

路径中是否存在通配符?还是动态遍历json值的唯一方法是在pl / sql函数中逐个递归地说出一个键? (甚至可能将一组游标作为一个大游标返回)。

编辑: 有趣的是,好的旧xml数据类型可以完全满足我的需求。所以我有些困惑,为什么我们不能对json文档执行相同的操作,如:

select xmlexists('//town[text() = ''Toronto'']' PASSING BY REF '<root><oldtowns><town>Toronto</town><town>Ottawa</town></oldtowns><newtowns><town>Toronto</town><town>Ottawa</town></newtowns></root>');

select * from xmltable('//town' PASSING by ref '<root><oldtowns><town>Toronto</town><town>Ottawa</town></oldtowns><newtowns><town>Toronto</town><town>Ottawa</town></newtowns></root>' columns town varchar path 'text()')

0 个答案:

没有答案