问题标签 [postgresql-json]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
json - 如何修改新 PostgreSQL JSON 数据类型中的字段?
使用 postgresql 9.3,我可以SELECT
使用 JSON 数据类型的特定字段,但是如何使用 修改它们UPDATE
?我在 postgresql 文档或在线任何地方都找不到这方面的任何示例。我已经尝试了明显的:
sql - Postgres JSON 按列表选择一行
我有一个表,其中有一个 JSON 列表作为其值之一。列名是list_order
,值类似于:[1,2,3]
。
我在WHERE
比较 select by时遇到问题list_order
。在纯 SQL 中,它将是:SELECT * FROM table_name list_order=[1,2,3];
我找到的最接近的例子是:如何使用新的 PostgreSQL JSON 数据类型中的字段进行查询?. 但是,这会获取 JSON 中的键的值,其中 JSON 是字典而不是列表。我已经尝试修改它以满足我的需要,但它没有工作。
有什么建议么?这甚至可能吗?为什么没有记录?谢谢!
json - PostgreSQL 中的 JSON 模式验证?
我在 PostgreSQL 中找不到任何关于 JSON 模式验证的信息,有没有办法在 PostgreSQL JSON 数据类型上实现 JSON 模式验证?
json - 在 PostgreSQL 9.3 中为 json 字段的嵌套属性创建索引的多种方法
在 PostgreSQL 9.3 中,有多种方法可以构建一个表达式,它指向一个 json 字段的嵌套属性:
因此,如果查询的表达式与索引的表达式完全匹配,PostgreSQL 只使用这些索引。
我的问题是:
这种行为是有意的吗?我认为查询优化器应该(至少)将索引与#>>
运算符一起使用,当查询包含适当的调用时json_extract_path_text()
-- 反之亦然。
如果我想在我的应用程序中使用更多这些表达式(不仅仅是一个,f.ex。坚持使用->
&->>
运算符),我应该构建哪些索引?(我希望,不是全部。)
有没有机会,一些未来的 Postgres 版本的优化器会理解这些表达式的等价性?
编辑:
当我为此创建一个额外的运算符时:
此查询(上一个示例中的表)仍然不使用它的索引:
奖金问题:
虽然 Postgres 将运算符扩展为函数调用(在幕后),但为什么仍然不使用它的索引?
sql - PostgreSQL:从 JSON 列中删除属性
我需要从 json 类型列中删除一些属性。
桌子:
现在,我需要attrB
从 column中删除data
。
类似的东西alter table my_table drop column data->'attrB';
会很好。但是使用临时表的方法也足够了。
ruby-on-rails - Postgresql JSON 数据列不同
尝试在带有导轨的模式上做不同的事情。
收到错误PG::UndefinedFunction: ERROR: could not identify an equality operator for type json
在这种情况下,转换为 Hstore 对我来说不是一种选择。有什么解决办法吗?
sql - Concatenating JSON results to single column postgresql
So, at the moment I have two columns in a table, one of which containing a JSON document, like so:
When I do a search on this column using:
I get:
When really I want:
How would i go about doing this? I'm new to JSON in postgresql. I've tried string_agg and it wouldn't work, presumably because i'm working in a json column, despite the fact '->>' should type set the result to string
UPDATE:
json - Postgres JSON 等效于 HSTORE 减法运算符
Postgres 的hstore
扩展有一个简洁的减法运算符:
在第一种情况下,它会删除在字符串数组中找到键的键/值对:在第二种情况下,它会从出现在第二个 hstore 中的第一个 hstore 中删除所有匹配的键/值对。
jsonb
新数据类型似乎不存在此运算符。有没有一种简单的方法来执行这些任务?
arrays - postgres + json 对象到数组
我想知道是否可以将 json 对象“转换”到 json 数组以迭代混合数据集。
我有两行看起来像
我想从所有这些行中提取 B1 val,但我有点受阻:)
我的第一次尝试是 json_extract_array,但它在第一行(不是数组)失败。然后我的第二次尝试是带有案例的 json_array_length ,但在第一行失败(不是数组)
我可以以任何方式处理这种情况吗?基本上我需要提取一个 json 数组(或对象)中 B1 > 0 的所有行,并可能返回包含 B1 > 0 的节点。