PostgreSQL 中 JSONB[] (JSONB ARRAY) 数据类型有啥用?

Posted

技术标签:

【中文标题】PostgreSQL 中 JSONB[] (JSONB ARRAY) 数据类型有啥用?【英文标题】:What is the use of JSONB[] (JSONB ARRAY) data type in PostgreSQL?PostgreSQL 中 JSONB[] (JSONB ARRAY) 数据类型有什么用? 【发布时间】:2020-07-15 14:33:21 【问题描述】:

我在其中一个项目中使用 Postgres 数据库。现在我需要将 JSON 数组存储在数据库中。如下所示:

例如,我有以下 JSON 结构:

[
  
    "Id": 1,
    "Name": "XYZ"
  ,
  
    "Id": 2,
    "Name": "ABC"
  
]

为此,我使用 JSONB 数据类型,它工作正常。那么当我们可以简单地将 JSON 数组存储为 JSONB 数据类型时,JSONB[] 数据类型有什么用呢?

【问题讨论】:

jsonb[] 不是“额外”数据类型,它只是 JSONB 值的数组。类似于text[]integer[]。您可以从每种类型创建数组。但我确实同意使用数组 jsonb 几乎没有意义。 【参考方案1】:

在我看来你做得对。

jsonb[] 数据类型在一个 PostgreSQL 数组中存储多个 jsonb 对象。

在您的情况下,您可以使用 jsonb 函数和运算符访问所有数组元素。

如果您将该数组分解为其组成对象并将每个对象作为一个元素存储在 jsonb[] 中,那么您将需要混合使用 PostgreSQL 数组函数和运算符以及 jsonb 函数和运算符来处理数据的内容.

【讨论】:

以上是关于PostgreSQL 中 JSONB[] (JSONB ARRAY) 数据类型有啥用?的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQL 中 JSONB[] (JSONB ARRAY) 数据类型有啥用?

postgresql:jsonb在一个查询中更新多个键

单个 postgresql 查询中的文本和 jsonb 连接

POSTGRESQL 从 jsonb 中提取密钥

在 Postgresql 和 IN 子句中索引 jsonb 列

在 PostgreSQL 中搜索 jsonb 数组