【发布时间】:2018-09-14 03:56:38
【问题描述】:
我有一个 Jsonb 列,它存储如下元素数组:
[
{"id": "11", "name": "John", "age":"25", ..........},
{"id": "22", "name": "Mike", "age":"35", ..........},
{"id": "33", "name": "Tom", "age":"45", ..........},
.....
]
我想用一个全新的对象替换第二个对象(id=22)。我不想一个一个地更新每个属性,因为有很多属性,它们的值都可能已经改变。我只想识别第二个元素并替换整个对象。
我知道有一个 jsonb_set()。但是,要更新第二个元素,我需要知道它的数组 index=1 以便我可以执行以下操作:
jsonb_set(data, '{1}', '{"id": "22", "name": "Don", "age":"55"}',true)
但我找不到任何方法来搜索和获取该索引。有人可以帮我吗?
【问题讨论】:
-
问:你试过 JSON 运算符吗:postgresql.org/docs/9.3/static/functions-json.html?