Postgres jsonb_set 多个嵌套字段

2024-04-08

我有一个带有 jsonb 列的数据库表,该列有一个实体,带有嵌套的子实体。假设我们有:

SELECT jsonb_set('{"top": {"nested": {"leaf" : 1}}}', '{top,nested,leaf}', '2');

更新哪个作品就可以了top.nested.leaf to 2.

但是如果我们想要处理多个字段怎么办,例如:

SELECT jsonb_set('{"top": {"nested": {"leaf" : 1}, "other_nested": {"paper": 0}}}', '[{top,nested,leaf}, {top,other_nested,paper}]', '[2, 2]');

上面的内容不起作用并说:

ERROR: malformed array literal: "[{top,nested,leaf}, {top,other_nested,paper}]" LINE 1: ...": {"leaf" : 1}, "other_nested": {"paper": 0}}}', '[{top,nes... ^ DETAIL: "[" must introduce explicitly-specified array dimensions.

有任何想法吗?


https://www.postgresql.org/docs/current/static/functions-json.html https://www.postgresql.org/docs/current/static/functions-json.html

jsonb_set(target jsonb, path text[], new_value jsonb[, create_missing boolean])

路径和新值都不能有多个值。你必须运行两次才能得到想要的结果,例如:

SELECT jsonb_set(
  '{"top": {"nested": {"leaf" : 1}, "other_nested": {"paper": 0}}}'
, '{top,nested,leaf}'
, '2'
);
SELECT jsonb_set(
  '{"top": {"nested": {"leaf" : 1}, "other_nested": {"paper": 0}}}'
, '{top,other_nested,paper}'
, '2'
);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Postgres jsonb_set 多个嵌套字段 的相关文章

随机推荐

  • 如何将 Vec 转换为 C 友好的 *mut T?

    我有一个 Rust 库 它返回u8通过 FFI 将数组传递给 C 调用者 该库还可以在客户端使用完数组后处理删除数组的问题 库没有状态 因此客户端需要拥有该数组 直到将其传回库进行释放 Using box from raw and boxe
  • Erlang 生成问题

    我在 erlang 中遇到了 spawn 问题 似乎进程在一段时间后就死掉了 这是简单的代码 module simple export server 1 client 1 owner 1 spawn n 2 start 1 main 1 s
  • javax.xml.bind.JAXBException:不包含 ObjectFactory.class o jaxb.in​​dex

    我有一个 Java Spring Web 应用程序 需要将其用作 SOAP 客户端 我正在使用 Maven 并且有一个包含自定义代码的主模块 WAR 和一个包含 WSDL 我有两个 WSDL 生成的类的子模块 JAR 依赖项 正如您在标题中
  • LsaOpenPolicy 在我的代码中抛出异常。为什么?

    我从新闻组帖子中得到了以下代码 奇怪的是 它在 Delphi 2010 中对我不起作用 LsaOpenPolicy 函数调用时抛出异常 function AddLogonAsAService ID pchar boolean const R
  • 是否可以将批量搜索请求发送到 Google 自定义搜索 API?

    我的应用程序超出了 Google 自定义搜索 API 的限制 在寻求优化我的搜索调用时 我想知道是否有办法批量发送到 API 的搜索请求 我有一些页面 每个用户搜索都会发出多个请求 并且希望将它们批处理为一个 API 调用 我环顾四周 但没
  • 在 React 中的按键上应用按钮“活动”样式

    我在 React Redux 中有一个鼓应用程序 它的功能齐全 但我希望能够在相应的按键按下时应用活动按钮样式 就像我物理单击按钮时一样 就目前情况而言 单击按钮会进行转换 但键入相应的键只会播放音频文件 而不会真正链接到按钮 有没有办法在
  • 如何以 RESTful 方式建模 CANCEL 操作?

    我们目前正在从我们的整体服务中争取较小的服务 我们的域与票务系统非常相似 我们决定开始域名的取消流程 我们的取消服务有一个简单的端点 Cancel 它接收票证的 ID 在内部 我们检索 id 对其执行一些与取消相关的操作 并更新存储中实体的
  • 使用 jquery 将字符串与数字分割[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有类似的字符串 1 test one 2 test two 3 test three 4 test four 5 test five
  • Xcode 中出现错误“未设置视图出口。”

    我在 Xcode 中遇到问题 每次我在模拟器中运行我的应用程序时 该应用程序都会在黑屏视图中停止 并且调试器会编写以下代码 2012 07 04 11 54 08 348 myApp 661 f803 由于以下原因终止应用程序 未捕获的异常
  • Laravel 5 - 未找到 Application::shutdown() 函数,是否有其他解决方案?

    出现致命错误 在 laravel 5 中调用未定义的方法 Illuminate Foundation Application shutdown 代码示例 App shutdown function do somthing 使用 Larave
  • 在进行 Rails asset:precompile 时如何运行一些初始化程序?

    背景 我有一个应用程序 最近更新到了 Rails 3 2 1 从 Rails 3 0 x 并重构了 JS 和 CSS 资源以利用新的资源管道 该应用程序托管在具有 Celadon Cedar 堆栈的 Heroku 上 应用程序配置 我将应用
  • EF4 仅代码映射继承

    我有以下型号 我想要ShiftRequest and MissionRequest在数据库中有一个表 public class RequestBase public int Id get set public DateTime Reques
  • golang:如何卸载已加载的“go插件”1.8

    go1 8开始 go支持创建和加载插件 但不支持卸载插件 插件是在运行时加载的模块 是否可以卸载模块 如果无法卸载模块 那么在应用程序级别卸载插件 使其不可用但仍在内存中的最佳方法是什么 Go 不支持卸载插件 但您可以按照您的建议禁用它 通
  • 如何将我的代理凭据传递给 SharePoint 客户端上下文对象...? (SharePoint 客户端对象模型)

    我正在编写一个使用客户端对象模型访问 SharePoint 网站的应用程序 并且我位于代理服务器后面 我打电话 ClientContext ExecuteQuery 并收到以下错误消息 远程服务器返回错误 407 需要代理身份验证 如何将我
  • 从特定键的嵌套数组行收集所有值[重复]

    这个问题在这里已经有答案了 需要创建一个列表 其中包含存储在特定键 product id 的数组行中的所有值 目前 对 bestsellers 变量执行 print r 会生成以下数组 Array 0 gt stdClass Object
  • 在 Linux 上调用 Python IDLE

    我正在尝试搭建Python开发环境 我在 Linux Mint 14 上运行 Python 2 7 3 我下载了 IDLE 并安装了它 它干净安装并且 Python 运行得很好 那么如何调用IDLE呢 我的路径中没有任何 IDLE whic
  • 如何运行使用 PyRun 读入 std::string 的 python 文件

    我正在将 Python 嵌入到我的 C 程序中 并且非常有效地使用了 PyRun SimpleString 但现在遇到了麻烦 我所做的是将 python py 文件加载到 std string 但现在运行它时遇到问题 PyRun Simpl
  • Git post-rebase 钩子

    有没有像 post rebase hook 这样的东西 我的目标是我想要一个脚本在之后执行git pull rebase使用命令 看来重写后挂钩可以完成这项工作
  • 领域驱动设计和聚合参考

    我正在设计领域模型 但有些东西似乎不太好 我从一个主要的聚合开始 它引用了其他聚合 而其他聚合也引用了更多聚合 我可以从主聚合开始遍历孔域模型 我看到的问题是我将在内存中保存聚合的所有实例 这是一个好的设计吗 我可以通过延迟加载解决内存问题
  • Postgres jsonb_set 多个嵌套字段

    我有一个带有 jsonb 列的数据库表 该列有一个实体 带有嵌套的子实体 假设我们有 SELECT jsonb set top nested leaf 1 top nested leaf 2 更新哪个作品就可以了top nested lea