问题标签 [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.

0 投票
21 回答
370397 浏览

json - 如何修改新 PostgreSQL JSON 数据类型中的字段?

使用 postgresql 9.3,我可以SELECT使用 JSON 数据类型的特定字段,但是如何使用 修改它们UPDATE?我在 postgresql 文档或在线任何地方都找不到这方面的任何示例。我已经尝试了明显的:

0 投票
1 回答
116 浏览

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 是字典而不是列表。我已经尝试修改它以满足我的需要,但它没有工作。

有什么建议么?这甚至可能吗?为什么没有记录?谢谢!

0 投票
3 回答
19854 浏览

json - PostgreSQL 中的 JSON 模式验证?

我在 PostgreSQL 中找不到任何关于 JSON 模式验证的信息,有没有办法在 PostgreSQL JSON 数据类型上实现 JSON 模式验证?

0 投票
9 回答
160600 浏览

json - PostgreSQL引入JSONB的解释

PostgreSQL 刚刚引入了JSONB,它已经成为黑客新闻的热门话题。它与以前存在于 PostgreSQL 中的 Hstore 和 JSON 有何不同?

它的优点和局限性是什么?什么时候应该考虑使用它?

0 投票
1 回答
3778 浏览

json - 在 PostgreSQL 9.3 中为 json 字段的嵌套属性创建索引的多种方法

在 PostgreSQL 9.3 中,有多种方法可以构建一个表达式,它指向一个 json 字段的嵌套属性:

因此,如果查询的表达式与索引的表达式完全匹配,PostgreSQL 只使用这些索引。

我的问题是:

这种行为是有意的吗?我认为查询优化器应该(至少)将索引与#>>运算符一起使用,当查询包含适当的调用时json_extract_path_text()-- 反之亦然。

如果我想在我的应用程序中使用更多这些表达式(不仅仅是一个,f.ex。坚持使用->&->>运算符),我应该构建哪些索引?(我希望,不是全部。)

有没有机会,一些未来的 Postgres 版本的优化器会理解这些表达式的等价性?

编辑

当我为此创建一个额外的运算符时:

此查询(上一个示例中的表)仍然不使用它的索引:

奖金问题:

虽然 Postgres 将运算符扩展为函数调用(在幕后),但为什么仍然不使用它的索引?

0 投票
11 回答
78727 浏览

sql - PostgreSQL:从 JSON 列中删除属性

我需要从 json 类型列中删除一些属性。

桌子:

现在,我需要attrB从 column中删除data

类似的东西alter table my_table drop column data->'attrB';会很好。但是使用临时表的方法也足够了。

0 投票
4 回答
28737 浏览

ruby-on-rails - Postgresql JSON 数据列不同

尝试在带有导轨的模式上做不同的事情。

收到错误PG::UndefinedFunction: ERROR: could not identify an equality operator for type json

在这种情况下,转换为 Hstore 对我来说不是一种选择。有什么解决办法吗?

0 投票
1 回答
2074 浏览

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:

enter image description here

0 投票
2 回答
1080 浏览

json - Postgres JSON 等效于 HSTORE 减法运算符

Postgres 的hstore扩展有一个简洁的减法运算符:

在第一种情况下,它会删除在字符串数组中找到键的键/值对:在第二种情况下,它会从出现在第二个 hstore 中的第一个 hstore 中删除所有匹配的键/值对。

jsonb新数据类型似乎不存在此运算符。有没有一种简单的方法来执行这些任务?

0 投票
3 回答
5411 浏览

arrays - postgres + json 对象到数组

我想知道是否可以将 json 对象“转换”到 json 数组以迭代混合数据集。

我有两行看起来像

我想从所有这些行中提取 B1 val,但我有点受阻:)

我的第一次尝试是 json_extract_array,但它在第一行(不是数组)失败。然后我的第二次尝试是带有案例的 json_array_length ,但在第一行失败(不是数组)

我可以以任何方式处理这种情况吗?基本上我需要提取一个 json 数组(或对象)中 B1 > 0 的所有行,并可能返回包含 B1 > 0 的节点。