我在“文件”表中有一个 jsonb 字段“格式”,如下所示:
{
"small": {
"ext": ".jpg",
"url": "https://my-digital-ocean-storage-1.fra1.digitaloceanspaces.com/strapi/d30cfee509a8748029f41a690e52ea3c.jpg",
"hash": "d30cfee509a8748029f41a690e52ea3c",
"mime": "image/jpeg",
"name": "small_nowe_1.jpg",
"path": null,
"size": 50.15,
"width": 500,
"height": 500
},
"thumbnail": {
"ext": ".jpg",
"url": "https://my-digital-ocean-storage-1.fra1.digitaloceanspaces.com/strapi/0b2bb902b3da82b1254dfbe873a650c8.jpg",
"hash": "0b2bb902b3da82b1254dfbe873a650c8",
"mime": "image/jpeg",
"name": "thumbnail_nowe_1.jpg",
"path": null,
"size": 7.28,
"width": 156,
"height": 156
}
}
我想要的是我想更新这个 jsonb 字段并更改“url”,例如从
"https://my-digital-ocean-storage-1.fra1.digitaloceanspaces.com/strapi/d30cfee509a8748029f41a690e52ea3c.jpg"
更改为 "https://my-digital-ocean-storage-2.fra1.cdn.digitaloceanspaces.com/strapi/d30cfee509a8748029f41a690e52ea3c.jpg"
您可以使用 jsonb-function jsonb_set() 为此:
UPDATE files
SET formats = jsonb_set(formats
, '{small,url}' -- path
, '"https://my-digital-ocean-storage-2.fra1.cdn.digitaloceanspaces.com/strapi/d30cfee509a8748029f41a690e52ea3c.jpg"' -- new content
)
WHERE id = 123;