在 PostgreSQL 的对象数组中添加更多数据

Posted

技术标签:

【中文标题】在 PostgreSQL 的对象数组中添加更多数据【英文标题】:Adding more data in array of object in PostgreSQL 【发布时间】:2022-01-18 08:52:15 【问题描述】:

我有一个包含 2 列 (user_num, data) 的购物车表。

user_num 将有用户的电话号码和 data 将有一个对象数组,如[ "id": 1, "quantity": 1 , "id": 2, "quantity": 2 , "id": 3, "quantity": 3 ] 这里id 是产品ID。

 user_num |                                         data
----------+--------------------------------------------------------------------------------------
        1 | [ "id": 1, "quantity": 1 ,  "id": 2, "quantity": 2 ,  "id": 3, "quantity": 3 ]

我想在 PostgreSQL 的上述对象数组中添加更多产品数据。

谢谢!

【问题讨论】:

哪种类型的列数据?是JSON 还是JSONB @Pooya 这是 JSON 【参考方案1】:

要添加值,请使用 JSONB 数组追加运算符 ||

Demo

update
  test
set
  data = data || '["id": 4, "quantity": 4, "id": 5, "quantity": 5]'
where
  user_num = 1;

【讨论】:

还有两个问题,如何删除id为4的对象以及如何编辑数量? 我希望这个示例对您有所帮助。我附加了一个用于更新和删除数组中的属性的示例。 dbfiddle.uk/…

以上是关于在 PostgreSQL 的对象数组中添加更多数据的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Postgresql 中获取数组的 JavaScript/JSON 数组?

在 postgresql、选项数组或对象中插入 jsonb 数据,有效方式

如何将更多对象添加到继续编号但不重新开始的对象数组中?

如何将 2 行或更多行的数据添加到 postgresql 中的一行

PostgreSQL 查询 JSONB 字段中的对象数组

如何从 PostgreSQL 中的 JSONB 数组中获取特定对象的值?