问题标签 [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.
arrays - PostgreSQL/JSONb。使用每个元素中的先前值更新所有数组元素
有一个表存储了一个相当复杂的 jsonb 字段:
info 字段通常如下所示:
我的问题是如何使用该属性中的先前值更新上面显示的结构中的每个字段“属性”。我需要对表中的每条记录执行此操作。
如果考虑到结构中的所有数组可能不包含值,任务就会变得更加复杂。
我会很感激你的帮助。
postgresql - 嵌套 JSONB 列的通配符搜索,包括数字数据类型
在 postgres 中搜索嵌套的 jsonb 列时,我们可以像这样进行全文搜索:
这将返回表中所有在 items jsonb 列中具有包含“35”的字符串值的行。
但是我们如何在这个查询中包含数字数据类型呢?例如,如果 items 列具有此值:
我们如何在查询中包含数字数据类型,以便我们从中得到结果:
试图寻找转换选项,但到目前为止我发现的唯一解决方案是创建一个附加列,其中将数字值存储为字符串,然后搜索这两列。
这是一个示例小提琴: https ://dbfiddle.uk/?rdbms=postgres_13&fiddle=e5929ddbcf69ae3704da932b61a7d153
postgresql - 通过嵌套的 jsonb 数组列对相同签名的数组进行过滤
我的参加者表有一个jsonb
名为eventfilters
.
给定与 具有相同签名(表单)的查询过滤器数组eventfilters
,我需要eventfilters
通过查询过滤器值选择针对该字段过滤的与会者。
以下是查询过滤器和eventfilters
字段的示例:
该eventfilters
字段如下所示:
查询过滤器可能如下所示:
因此,eventfilters
字段和查询过滤器始终具有相同的签名:
给定查询过滤器和eventfilters
上面的过滤逻辑,过滤逻辑如下:
- 选择具有以下
eventfilters
字段的所有与会者:selected
带有field: "Org Type"
参加者 ( )的数组eventfilters
包含数组中存在的任何值,该selected
数组带有查询过滤器的“组织类型”字段; 和selected
带有field: "Industry Sector"
参加者 ( )的数组eventfilters
包含数组中存在的任何值,该selected
数组带有查询过滤器的“行业部门”字段。
查询过滤器数组可以有不同的长度和不同的元素,但总是具有相同的签名(形式)。
我能想出的是上述逻辑,但不是and
查询过滤器中的每个元素,而是or
:
基本上我需要将上述查询or
中的where
子句更改为and
,但这显然行不通。
该where
子句将动态生成。
这是我现在如何生成它的示例(它是 javascript,但我希望你能掌握这个想法):
or
和and
逻辑的简单交换在实现中似乎非常不同。我想使用 来实现它会更容易jsonpath
,但我的 postgres 版本是 11 :(
我怎样才能实现这样的过滤?
PS:create table
和insert
复制代码:https ://pastebin.com/1tsHyJV0
laravel - 如何使用 laravel 查询更新 jsonb 列
我想更新available
到false
where toy->id=27
。任何人都可以给我这个 laravel 雄辩的查询吗?谢谢。
json - 如何在 Postgres json 列中查询数组?
提前致谢。假设,我有一个表,其中包含类似这样的数组中的值。
我想查找'c'
content_type 中包含的行
我已经尝试过,但无法获得,
有人帮我建立查询吗?
sql - 过滤和计算 JSONB 对象
我有一个带有 JSONB 列的表,其中包含如下数据:
统计示例:
我想计算按城市和月份分组的汽车品牌的新/生产/交付百分比
我尝试了以下方法,但我不知道如何计算 JSON 中的元素(例如,所有 BMW 都处于 NEW 状态)
sql - 更新 jsonb PostgreSQL 中数组的对象字段
我在 PostgreSQL 中有下表:
在该表中,我有一列data
具有JSONB
数据类型并包含如下值:
这是测试数据:
但是现在我需要将主要和次要值转换为数组,因此,对于第一行我想收到这个结果:
对于第二行,我想收到这个结果:
现在我已经创建了这个查询来更新major
:
但它只更新了所有行的数组的第一个元素,所以现在我收到这个结果:
所以我的问题是如何解决这个问题?请帮我 :)
postgresql - postgresql 11通过其他表字段的路径从jsonb数据中选择值
我的表中有 jsonb 字段“数据”。我可以通过获取 subKey 的值。select data#>'{key1,subKey}' from table
如果路径作为字符串“key1,subKey”存储在另一个表中,如何将路径插入到 select 中?
mongodb - MongoDB {"$exists": false} 在 Postgres 中等效
MongoDB 有一个 $exists 运算符来检查文档中是否存在键。它与true
和一起使用false
。
Postgres 也可以存储 JSON 数据。以下 Mongodb 查询的 Postgres 等效项是什么?