当前位置: 首页 > 面试题库 >

jsonb字段中的PostgreSQL重命名属性

郎经纶
2023-03-14
问题内容

在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