gpt4 book ai didi

json - 在 Rails 中使用 postgres json 字段更新嵌套键

转载 作者:行者123 更新时间:2023-11-29 12:36:23 24 4
gpt4 key购买 nike

我一直在尝试更新以下内容:

{"boxes": {"book": 2, "moving": 2}, "goods": {}}

到:

{"boxes": {"book_new": 2, "moving": 2}, "goods": {}}

不使用正则表达式或在 ruby​​ 中执行此操作。但似乎有点棘手。我想添加新 key 然后删除旧 key ,我不熟悉语法并且在互联网上找不到太多。

我能够向数据添加新元素,但不能向嵌套框添加新元素!!像那样:

Update moves SET data = data::jsonb || '{"bookasas": 2}'   WHERE data ->> 'boxes' LIKE '%book%';

感谢任何帮助。

最佳答案

没有替换json key的功能,所以你应该删除旧对象并添加新对象:

update moves 
set data = jsonb_set(
data::jsonb,
array['boxes'],
(data->'boxes')::jsonb - 'book' || jsonb_build_object('book_new', data->'boxes'->'book')
)
where data ->> 'boxes' like '%book%'
returning *;

data
------------------------------------------------------
{"boxes": {"moving": 2, "book_new": 2}, "goods": {}}
(1 row)

关于json - 在 Rails 中使用 postgres json 字段更新嵌套键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39206360/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com