You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL:移除JSONB数组中每个元素的指定键

解决方案

可以通过拆解JSONB数组、逐个处理元素、重新聚合的方式实现批量移除每个元素的"b"键,具体SQL语句如下:

SELECT 
  json_build_object(
    'id', s.id,
    'key', json_build_object(
      'key', (SELECT jsonb_agg(elem - 'b') FROM jsonb_array_elements(s.column) AS elem)
    )
  ) 
FROM "table" s;

步骤说明:

  • 使用jsonb_array_elements(s.column)将JSONB数组拆分为单个JSONB对象(每行对应一个数组元素);
  • 对每个拆分出的元素elem,通过elem - 'b'直接移除其中的"b"键;
  • 用jsonb_agg()将处理后的单个元素重新聚合为完整的JSONB数组;
  • 最后将处理后的数组嵌入你原本需要的JSON结构中。

如果需要直接更新表内的JSONB列(而非仅查询结果),可使用以下UPDATE语句:

UPDATE "table" s
SET column = (SELECT jsonb_agg(elem - 'b') FROM jsonb_array_elements(s.column) AS elem);

内容的提问来源于stack exchange,提问作者Michael Gallego

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 22:46:02