问题标签 [jsonb]
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 中的 json 数组中获取具有唯一编号的元素?
我有一张桌子bank_accounts
:
它在jsonb
列中有一些 JSON:
我正在使用 jsonb_array_elements 获取一个用户的帐户列表:
这一切都很棒。但是如何让每一行都有一个唯一的 id?我想将每一行映射到一个休眠对象,但是我在这样做时遇到了麻烦,因为我找不到让每一行都具有唯一 ID 的方法。
sql - 如何在postgres中过滤json的任何键的值
我有一个表users
,其中有一个jsonb
名为data
. 我必须检索在该列中具有与给定字符串匹配的值的所有用户。data
例如:
我想检索具有data
匹配值的任何用户'b2'
,在这种情况下将是'user2'
。
知道如何以优雅的方式做到这一点吗?我可以从data
所有用户中检索所有密钥并手动创建查询,但这既不快速也不优雅。
此外,我必须检索匹配的键和值,但首先要做的是。
peewee - 使用 Peewee ORM 加入对 Postgres 9.4 JSONB 字段的查询
我在我的一个项目中使用 peewee 并且来自 Django 背景,我非常喜欢它。
我计划在 postgres 9.4 中广泛使用新引入的 JSONB。但是,我不知道如何使用 JSONB 键执行连接操作。
我假设一个例子对整个社区来说都是极好的。
sql - 如何从 json 中进行文本查询
我需要搜索结果为"Achieved"
. 数据是一个 JSON 对象,text
位于 Postgres 9.4 的列中。
我尝试使用:
但是,单词的实例"Achieved"
不一定在与 相同的位置匹配"Legal"
。正如您在下面的示例数据中看到的那样,在该Goals Array
部分中,可能会有关于进度的更新 -##
我的评论是为了说明。(您需要删除这些以获得有效的 JSON 格式!)
查询很好地提取了状态"Legal"
,但第二个条件"Achieved"
可能与最新的状态更新不匹配。
我已经阅读了 JSON 中的文本查询,但我对这种结构不知所措。我把它放在 jsonlint.com 中,它验证为正确的 JSON。有人可以帮忙吗?
这是完整的查询,后面是数据样本:
中的示例值notes.data
:
postgresql - 在 PostgreSQL 上从 JSON 创建时间戳索引
我在 PostgreSQL 上有一个表,其中有一个名为的字段data
,jsonb
其中包含很多对象,我想创建一个索引来加快查询速度。我使用几行来测试数据(只有 15 行),但我不想在将来遇到查询问题。我从 Twitter API 获取数据,所以一周后我得到了大约 10gb 的数据。
如果我做正常的索引
CREATE INDEX ON tweet((data->>'created_at'));
我得到一个文本索引,如果我做:
Create index on tweet((CAST(data->>'created_at' AS timestamp)));
我明白了
ERROR: functions in index expression must be marked IMMUTABLE
我试图让它“不可变”设置时区
date_trunc('seconds', CAST(data->>'created_at' AS timestamp) at time zone 'GMT')
但我仍然收到“不可变”错误。那么,如何从 JSON 中完成时间戳索引?我知道我可以用日期制作一个简单的列,因为它可能会在一段时间内保持不变,但我想学习如何做到这一点。
postgresql - postgres9.4 循环通过 jsonb:如何选择 key:val 对的 vals
此 plpgsql 脚本从一组 jsonb 对象键:值对中选择键,但是如何为每对选择值?
应该可以作为手册页http://www.postgresql.org/docs/9.4/static/functions-json.html指示返回值是 setof 键文本,值文本。这篇Postgres - array for loop回答了数组的问题。还尝试了 jsonb_each() 和 jsonb_array_elements() 将迭代器更改为 jsonb,出现错误“无法从对象中提取元素”
ruby-on-rails - Ruby on Rails 验证 jsonb 中的日期(哈希)
我的 Postgres 数据库中有 jsonb 列,并且我有一个带有 pref["date"] date_field 的表单供用户使用。
如果转换为日期会下降,我如何转换为日期并验证 user.pref["date"] 是没有错误的日期?
sql - 在 PostgreSQL 中使用 json 数组中的索引
参考原始 stackoverflow 问题,我试图将 gin 索引应用于 Postgres 9.4 中数组对象中的键,但我没有得到第一个答案中所述的结果。
你能纠正错误吗?
我遵循的步骤已写在下面。
第 1 部分:创建表和索引
第 2 部分:查询
此查询给出空结果。
我也尝试使用jsonb_path_ops
GIN 索引。
替代索引和查询:
json - WHERE BETWEEN 子句中的 PostgreSQL jsonb 值
我的数据库表(a_table)中有 jsonb 字段,其中包含 int 值,例如:
我即将使用 WHERE 子句按此字段(“ghk”)创建带有过滤器的 SELECT:
我应该如何创建这样的查询?到目前为止找不到关于 jsonb 使用的好教程。
提前致谢!
编辑
我找到了这个解决方案:
这是对的吗?
json - postgresql jsonb 在第二级包含键:值
postgresql 中是否有可能在第二级查询 key:value
例如,一行的 jsonb 字段如下所示:
我想使用 v_id 值查询这一行,例如:
但是,此查询无效。如何实现这样的查询?
编辑:
根据@CraigRinger 的评论:
这里的重点是我不知道顶级键,我想说“对于任何对象,是否有一个内部对象具有以下键和以下值”。