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

0 投票
1 回答
605 浏览

postgresql - 在 PostgreSQL 中,如何选择具有范围之间任何元素的 jsonb 数组的行?

我有以下(简化的)结构:

理想情况下,我想查询如下内容:

我设法想出了一个解决方法:

之前定义了以下内容:

这可行,但有点hackish,看起来效率不高。有没有更好的办法 ?

0 投票
2 回答
12548 浏览

postgresql - PostgreSQL 上的 CTE 和临时索引

我在 postgres 数据库上工作,我将混合使用关系表和 jsonb 表(可以被索引)。

我一直在使用大量 CTE 查询来插入或更新从临时表中选择的数据,例如:

好吧,我想知道是否可以在这种表中创建临时索引,如果可以,是否也可以在 jsonb 类型的字段中创建索引?(考虑到这个临时表)

0 投票
1 回答
3628 浏览

regex - 在 PostgreSQL 中搜索 jsonb 数组

我正在尝试在 PostgreSQL 9.4 中搜索 JSONB 对象。我的问题类似于这个线程

但是我的数据结构略有不同,这导致了我的问题。我的数据结构是这样的:

我想通过 msg(RegEx、LIKE、= 等)在该数组中搜索匹配的对象。更具体地说,我希望表中 JSONB 字段具有与我的请求匹配的“msg”对象的所有行。

下面显示了一个类似于我所拥有的结构:

这显示了尝试实现上述链接的答案,但不起作用(返回 0 行):

谁能解释如何搜索 JSONB 数组?在上面的示例中,我想在表中查找其“数据”JSONB 字段包含“msg”匹配某些对象的任何行(例如,LIKE '%est%')。


更新

此代码创建一个新类型(稍后需要):

然后,您可以使用它来使用 JSONB_POPULATE_RECORDSET 拆分列:

输出:

并加入约束:

输出:

所以剩下的部分问题是如何把它作为一个子句放在另一个查询中。

所以,如果上面代码的输出=x,我怎么问:

0 投票
2 回答
6766 浏览

ruby-on-rails - 如何逃脱?(问号)运算符在 Rails 中查询 Postgresql JSONB 类型

我正在使用 Rails 4.2 和 Postgres 9.4 来尝试新的 JSONB 数据类型。我的数据库中的 JSONB 列之一包含一个数组,我希望能够查询该数组包含某个值的记录。我想出了如何使用新的 JSONB“问号”(“包含”)运算符来做到这一点,如此处所述: http ://www.postgresql.org/docs/9.4/static/functions-json.html

所以在原始 SQL 中,我可以让它像这个例子一样工作:

但是我看不到通过 ActiveRecord 在 Rails 中执行此查询的任何方法。我尝试使用“where”方法进行原始查询,如下所示:

但由于问号是用于替换参数的特殊字符,我得到这个错误:

ActiveRecord::PreparedStatementInvalid:绑定变量的数量错误(1 对 2):角色??

我想我需要一种方法来逃避“?” 字符,因为我希望它从字面上通过。我试过了 \?和 ??没有运气。任何帮助表示赞赏!

0 投票
1 回答
16308 浏览

postgresql - 为什么我不能直接在 jsonb_array_elements 上查询?

我将数据作为 jsonb 存储在名为“数据”的列中:

我可以通过以下方式查询:

为什么我不能用“a”代替 jsonb_array_elements(...)?:

相反,我得到以下信息:

0 投票
3 回答
17170 浏览

ruby-on-rails - 嵌套 JSON 的存储访问器

我有存储与组织相关的所有信息的模型“组织”。有一个名为“integrations”的 JSONB 类型字段,用于存储与组织拥有的所有外部服务集成相关的信息。

如何使用存储访问器访问存储在嵌套 JSON 中的信息,例如:

我知道我可以使用这样的商店访问器访问 mailchimp:

如何轻松访问 mailchimp 的 api_key?

0 投票
2 回答
81 浏览

postgresql - 如何选择“职业”?

我有以下内容:

我正在过滤对象'{“name”:“Bob”,“occupation”:“janitor”}'

如何返回 Bob 的职业(“看门人”)?

返回

寻找:

0 投票
2 回答
5917 浏览

arrays - 在 PostgreSQL 9.2、9.3 和 9.4 中追加(推送)和删除 JSON 数组?

对于大于 9.5 的版本,请参阅此问题

我使用以下方法在 PostgreSQL 中创建了一个表:

现在我想要的是

  • addappend_to_json_array这样的东西接受实际的 jsondata,它是一个 json-array 和我必须添加到该 jsondata 数组的 newString,这个函数应该返回更新的 json-array。

    /li>
  • 从 json 数据数组中删除一个值,一个用于删除该值的函数。

我试图搜索 postgreSQL 的文档,但在那里什么也没找到。

0 投票
1 回答
3448 浏览

sql - Postgres 9.4 jsonb 数组作为表

我有一个 json 数组,其中包含大约 1000 个结构元素“oid:aaa,instance:bbb,value:ccc”。

oid并且instance每个 json 数组都是唯一的。如果我可以选择更改结构,我会将格式更改为key:value

但是,如果我需要保留旧结构

  1. oid从数组中获取特定信息的最快方法是什么?

  2. 获取具有 3 列 和 的表的最快方法oidinstance什么value?或者甚至更好的是使用 oid+instance 作为列标题的数据透视表。

对于 2. 我尝试了以下方法,但在一张大桌子上速度很慢:

0 投票
1 回答
2977 浏览

postgresql - Postgresql:使用 jsonb 字段在时间范围之间查询

我有一个包含两个字段的表:

在数据中,我有一个 Datetime 字段的记录,该字段存储为 UNIX 时间戳:

我正在尝试在范围之间进行查询:

信息

我做错了什么,请云有人帮助我吗?谢谢。