在 PostgreSQL 中查询 JSON 字段

来自 j

我的 PostgreSQL 数据库中有一个 JSON 字段,带有这样的 JSON 架构

{
   "home":{
      "lat":"37.774192",
      "long":"-92.118511",
      "address":"home address"
   },
   "work":{
      "lat":"37.774192",
      "long":"-92.118511",
      "address":"work address"
   },
   "more":[
      {
         "id":"bRuKnd",
         "name":"gym",
         "lat":"37.774192",
         "long":"-92.118511",
         "address":"gym address"
      },
      {
         "id":"eVdOlD",
         "name":"fastfood",
         "lat":"37.774192",
         "long":"-92.118511",
         "address":"fastfood addres"
      },
      {
         "id":"SwkfcL",
         "name":"Res",
         "lat":"37.774192",
         "long":"-92.118511",
         "address":"Res address"
      }
   ]
}

我可以使用此查询在“more”或“work”和“home”对象中获取每个 JSON 字段

UPDATE items FROM (SELECT loc FROM public.tbl_user where uuid = '2fa7a484-f454-4d44-94be-a4011aee47b4') as o 
   ,json_array_elements(o.loc#>'{more}') AS items where items->>'id' = 'eVdOlD' ;

我不知道如何编辑或删除数据库中的这些字段

我需要这些查询

  • 编辑 home 对象并删除其值
  • 编辑工作对象并删除其值
  • 在更多对象上添加编辑和删除项目
理查德·威尔登

当您在 postgres JSON 中编辑值时,您并不是在编辑,而是用新的内容替换该行。

jsonb_set 可能就是你要找的。

请参阅https://www.postgresql.org/docs/current/functions-json.html

基于您示例的更简单形式:

sophia=> create table foo (bar jsonb);
CREATE TABLE
sophia=> insert into foo values ('{
   "home":{
      "lat":"37.774192",
      "long":"-92.118511",
      "address":"home address"
   }}'::jsonb);
INSERT 0 1
sophia=> select * from foo;
                                       bar                                       
---------------------------------------------------------------------------------
 {"home": {"lat": "37.774192", "long": "-92.118511", "address": "home address"}}
(1 row)

sophia=> update foo set bar = jsonb_set(bar, '{home,address}', '"29 Acacia Road"');
UPDATE 1
sophia=> select * from foo;
                                        bar                                        
-----------------------------------------------------------------------------------
 {"home": {"lat": "37.774192", "long": "-92.118511", "address": "29 Acacia Road"}}
(1 row)

sophia=>

与删除类似:

sophia=> update foo set bar = jsonb_set(bar, '{home}', (bar -> 'home') - 'address');
UPDATE 1
sophia=> select * from foo;
                         bar                          
------------------------------------------------------
 {"home": {"lat": "37.774192", "long": "-92.118511"}}
(1 row)

sophia=> 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在PostgreSQL中查询JSON字段

来自分类Dev

PostgreSQL-JSON字段中的查询

来自分类Dev

使用Postgresql从Flask-SQLAlchemy中的JSON字段查询值

来自分类Dev

如何更改PostgreSQL中JSON字段的结构?

来自分类Dev

在Redshift中查询JSON字段

来自分类Dev

JSONB字段中的对象的Postgresql查询数组

来自分类Dev

在PostgresQL中查询JSONB字段数组

来自分类Dev

在postgresql jsonb列中查询内部字段

来自分类Dev

在postgres json字段中查询json键

来自分类Dev

在postgres json字段中查询json键

来自分类Dev

在PostgreSQL中按值动态选择或过滤JSON字段

来自分类Dev

Rails:在 postgresql db 中搜索数组 json 字段

来自分类Dev

在Rails中查询Postgres JSON数组字段

来自分类Dev

JSON字段检查查询中的存在

来自分类Dev

在Postgresql中查询复杂JSON的干净方法

来自分类Dev

PostgreSQL:查询 JSON 数组中的元素

来自分类Dev

如何在Postgresql查询中访问行类型内的字段?

来自分类Dev

如何在Django JSON字段中查询特定字段

来自分类Dev

postgresql和RoR-如何查询数组中值所在的json类型字段

来自分类Dev

postgresql和RoR-如何查询数组中值所在的json类型字段

来自分类Dev

PostgreSQL嵌套JSON查询

来自分类Dev

选择查询以获取OrientDB中JSON中的字段

来自分类Dev

选择查询以获取Orientdb中JSON中的字段

来自分类Dev

消除json字段中的双引号并处理PostgreSQL中的字符

来自分类Dev

最快的PostgreSQL查询字段长度吗?

来自分类常见问题

在PostgreSQL中有选择地消除json字段中的双引号

来自分类Dev

如何在PostgreSQL上的json类型字段中更新键的值

来自分类Dev

在PostgreSQL中有选择地消除json字段中的双引号

来自分类Dev

选择行,其中嵌套的json数组字段包括PostgreSQL中提供的数组中的任何值?

Related 相关文章

  1. 1

    在PostgreSQL中查询JSON字段

  2. 2

    PostgreSQL-JSON字段中的查询

  3. 3

    使用Postgresql从Flask-SQLAlchemy中的JSON字段查询值

  4. 4

    如何更改PostgreSQL中JSON字段的结构?

  5. 5

    在Redshift中查询JSON字段

  6. 6

    JSONB字段中的对象的Postgresql查询数组

  7. 7

    在PostgresQL中查询JSONB字段数组

  8. 8

    在postgresql jsonb列中查询内部字段

  9. 9

    在postgres json字段中查询json键

  10. 10

    在postgres json字段中查询json键

  11. 11

    在PostgreSQL中按值动态选择或过滤JSON字段

  12. 12

    Rails:在 postgresql db 中搜索数组 json 字段

  13. 13

    在Rails中查询Postgres JSON数组字段

  14. 14

    JSON字段检查查询中的存在

  15. 15

    在Postgresql中查询复杂JSON的干净方法

  16. 16

    PostgreSQL:查询 JSON 数组中的元素

  17. 17

    如何在Postgresql查询中访问行类型内的字段?

  18. 18

    如何在Django JSON字段中查询特定字段

  19. 19

    postgresql和RoR-如何查询数组中值所在的json类型字段

  20. 20

    postgresql和RoR-如何查询数组中值所在的json类型字段

  21. 21

    PostgreSQL嵌套JSON查询

  22. 22

    选择查询以获取OrientDB中JSON中的字段

  23. 23

    选择查询以获取Orientdb中JSON中的字段

  24. 24

    消除json字段中的双引号并处理PostgreSQL中的字符

  25. 25

    最快的PostgreSQL查询字段长度吗?

  26. 26

    在PostgreSQL中有选择地消除json字段中的双引号

  27. 27

    如何在PostgreSQL上的json类型字段中更新键的值

  28. 28

    在PostgreSQL中有选择地消除json字段中的双引号

  29. 29

    选择行,其中嵌套的json数组字段包括PostgreSQL中提供的数组中的任何值?

热门标签

归档