在Postgresql 9.5中,是否可以重命名jsonb字段中的属性?
例如:
{ "nme" : "test" }
应该重命名为
{ "name" : "test"}
在UPDATE
使用删除( -
)并连接(||)运算符
,如:
create table example(id int primary key, js jsonb);
insert into example values
(1, '{"nme": "test"}'),
(2, '{"nme": "second test"}');
update example
set js = js - 'nme' || jsonb_build_object('name', js->'nme')
where js ? 'nme'
returning *;
id | js
----+-------------------------
1 | {"name": "test"}
2 | {"name": "second test"}
(2 rows)
问题内容: 我有这样的文件 我需要更改为 为此,首先将字段映射添加到现有索引 然后尝试重新索引 错误是 问题答案: 该字段在您的文档中尚不存在,因此您的脚本需要首先创建它: 或更短一些:
问题内容: 我的表有一堆列,格式如下: 我想重命名它们只是添加一个前缀,如下所示: 我有 很多 比三列更用这种方式来命名。如果我只有三个人,那我会手动一个接一个地做。 实现这一目标的最快/最有效的方法是什么? 问题答案: …对于所有此类批量管理操作,您可以使用PostgreSQL系统表为您生成查询,而无需手动编写查询 在您的情况下,它将是: 这将为您提供一组字符串,这些字符串是SQL命令,例如:
我正在使用(https://github.com/typeorm/typeorm)作为ORM库来连接postgresql数据库。我将几列保存为类型。现在我需要支持部分更新json数据,例如, 如果我只更新,我不想在更新语句中覆盖lastName。支持,我可以使用它来部分更新字段,但我如何使它与图书一起工作?
问题内容: 使用运算符将产生以下结果: 我希望能够实现以下结果(对于操作员来说只是一个占位符): 因此,您可以看到顶级键的子值已“合并”,使得结果包含和。 如何在Postgres中“深度”合并两个 JSONB 值? 如果可能的话,这可能吗? 一个更复杂的测试用例: 原始“合并”并成为对象的另一个测试用例: 问题答案: 您应该合并两个值都使用的未嵌套元素。在不平凡的查询中执行此操作可能会感到不舒服,
问题内容: 我有一个表示JSON的字符串,我想使用JSON.NET重命名某些属性。我需要用于任何JSON的通用函数。就像是: 怎么做?? 问题答案: 我建议您使用重命名的属性来重构您的JSON。我认为您不必担心速度惩罚,因为通常这不是问题。这是您的操作方法。 这是用法示例:
我有带有jsonb字段的postgresql,该字段总是包含数组。我需要将新值追加到该数组或通过索引更新已经存在的值。 看起来函数符合我的要求。对于追加新元素,我只需要最大数组索引并用它更新元素。但我做这个有点麻烦。让我们一步一步来。我们有使用jsonb字段team_members的表活动。 很好,如果静态设置路径“{0}”,则一切正常。让我们动态地做这件事 用于获取数组长度的SQL(它是appe