sql - 如何使用 postgres 更新 jsonb 数据列中的属性
问题描述
嗨,我在 postgres 的 jsonb 列中有这个结构
{
"cronograma_actividades": {
"section_template_id": 5,
"ciclos": [
{
"ciclo_verano": {
"nro_semanas_max": 9,
"programas": [
{
"pregrado": {
"modalidades": [
{
"type": "presencial",
"codigo_formula": "FOR2234",
"unidades": [
{
"nro": 1,
"titulo": "Unidad aprendi",
"logro": "Logro de una unidad es texto",
"semanas": [
]
},
{}
]
},
]
}
那么如何使用 postgres 更新字段 codigo_formula 此列是 jsonb 类型我找到 json_object_set_path ,但我不知道如何访问深度树
问候
解决方案
假设包含您的 jsonb 的列称为“testcol”,您可以这样做:
update t_test set testcol = jsonb_set(testcol, '{cronograma_actividades,ciclos,0,ciclo_verano,programas,0,pregrado,modalidades,0}', jsonb('{"cordigo_formula":"new value"}'), false);
0 值表示数组中的位置。实际上,您可能想在这里阅读一篇关于 postgresql 中 json(b) 的令人印象深刻的文章。
推荐阅读
- regex - 用于获取 xml 文件中特定键值的正则表达式
- ios - Firebase 动态链接短 URL 未按预期工作
- druid - Apache Druid:分页和 SQL Rank() 等效
- multipartform-data - 如何处理 Azure API 管理策略表达式中的 multipart/form-data?
- firebase - Firebase firestore:更新存储数组中的元素同时保留其顺序?
- go - 如何在 Kubernetes 中过滤已完成的作业
- python - 如何在 Django 中使用 href 链接
- c# - 使用 C# 中的弹出窗口在 Google API 中进行身份验证
- go - 自定义 GraphQL 指令逻辑实现
- flutter - 控制台中的flutter web dart_sdk.dart.getModuleLibraries错误