在PostgreSQL 9.3.4上,我有一个称为“ person”的JSON类型列,并且其中存储的数据为format {dogs: [{breed: <>, name: <>}, {breed: <>, name: <>}]}
。我想检索索引为0的狗的品种。这是我运行的两个查询:
不起作用
db=> select person->'dogs'->>0->'breed' from people where id = 77;
ERROR: operator does not exist: text -> unknown
LINE 1: select person->'dogs'->>0->'bree...
^
HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
作品
select (person->'dogs'->>0)::json->'breed' from es_config_app_solutiondraft where id = 77;
?column?
-----------
"westie"
(1 row)
为什么必须进行类型转换?效率低下吗?我是在做错什么,还是对Postgres JSON支持有必要?
这是因为运算符->>
将JSON数组元素获取为文本。您需要强制转换以将其结果转换回JSON。
您可以使用operator消除此多余的转换->
:
select person->'dogs'->0->'breed' from people where id = 77;
在PostgreSQL 9.3.4中,我有一个名为“person”的JSON类型列,其中存储的数据格式为
我的数据库中有一个名为“json”的表,有两列:“id”和“data” 目前只有一行存储在其中,id为1,数据为JSON结构: 我需要更新json的一个键:“Name here”必须变成“updated” 这就是我尝试的: 但我有一个错误: “更新”处或附近的语法错误
我已将上述格式的json对象存储在postgresql数据库中。每个对象都包含有关某个学生的信息以及注册信息。我在数组中具有嵌套数组的复杂对象。我试图选择“信息”数组中的所有元素。我尝试使用以下查询: 此查询不起作用,并出现以下错误:“无法在标量上调用json\u array\u元素”。是否有其他查询可用于提取嵌套数组“info”的元素??
我是JSON/JSONB数据类型的新手,在选择更深层次的JSONB元素时遇到了一些问题。 对此有什么建议吗?
问题内容: 我有正在使用nodeJS读取的csv文件。我在阅读之前将每个文件转换为文本。 文件中的每一行都有以’=’分隔的数据。 每行看起来像 “ =“之前的第一部分代表我应用程序中json对象的索引。我的目的是解析此数据并为其构建json表示,以便上面的行成为 使用javascript / node js; 如何将应该表示嵌套JSON键序列的字符串转换为上述json对象? 问题答案: 您可以分割
和相应的查询解析器 这里的主要想法只是有一个过滤器,可以看到什么食谱有一些成分,用户会通过应用程序通知。 我使用数据库中的所有食谱获得了“recipe”查询,但我需要一个获取这些食谱的查询,然后使用field comprient进行筛选,例如: 食谱-糖蛋糕,配料:糖、蜂蜜、四个… 配方-天鹅绒蛋糕,配料:糖、香草、... 并且用户通知Sugar,API应该返回这2个食谱,但是如果用户通知Suga