postgres之jsonb屬性的簡單操作
jsonb的一些簡單操作(增刪改查)
- 更新操作(attributes屬性為jsonb型別)
方法定義:
jsonb_set(target jsonb, path text[], new_value jsonb[, create_missing boolean])
引數:
target:目標(jsonb型別的屬性)
path :路徑,如果jsonb是陣列‘{0,a}’表示在下標是0的位置更新a屬性,如果不是陣列,是物件,則寫‘{a}’即可
new_value:新值
選填引數:create_missing:jsonb欄位不存在f1屬性時建立,預設為true
返回:更新後的jsonb
官方文件給出的示例(jsonb陣列):
jsonb_set('[{"f1":1,"f2":null},2,null,3]', '{0,f1}','[2,3,4]', false)
結果:[{"f1":[2,3,4],"f2":null},2,null,3]
jsonb_set('[{"f1":1,"f2":null},2]', '{0,f3}','[2,3,4]')
結果:[{"f1": 1, "f2": null, "f3": [2, 3, 4]}, 2]
更新jsonb屬性:
-- attributes為jsonb型別欄位(物件轉成的json)
原值:{"a":"1"}
update user_test set attributes = jsonb_set(attributes,'{a}','"0"'::jsonb, false) where id = '8888';
執行後:{"a":"0"}
為jsonb插入屬性:
-- 執行後attributes欄位中添加了platform:baidu
update user_test set attributes = attributes::jsonb || '{"platform":"baidu"}'::jsonb;
或者:
update user_test set attributes = jsonb_set(attributes, '{platform}','"baidu"') ;
查詢
select value from json_each('{"a":"foo", "b":"bar"}') where key = 'a'
select * from json_object_keys('{"a":"foo", "b":"bar"}')
select * from json_object_keys('{"f1":"abc","f2":{"f3":"a", "f4":"b"}}')
select * from json_object_keys(from ci_type.attributes);--錯誤
select * from to_jsonb('"a":1,"b":2')
select '{"a":1,"b":2}'::json->>'b' --獲取jsonb中對應鍵的值(文字)
--select * from json_each( to_jsonb(select distinct attributes from ci_type ) )
--select to_jsonb(select distinct attributes from ci_type )
--擴充套件欄位提取相應屬性的值
select attributes :: json->>'instanceType' from ci_type
-- 屬性值轉為jsonb
select to_jsonb('id:'||id::text) from ci
--jsonb新增屬性,刪除屬性
select '{"a":"foo", "b":"bar"}'::jsonb || '{"c":"fc", "d":"bdd"}'::jsonb--新增
select '{"a":"foo", "b":"bar"}'::jsonb -'c'-'d'-'a'||'{"a":2}'--刪除
select '{"a": "b","c":3}'::jsonb - 'a'
相關推薦
postgres之jsonb屬性的簡單操作
jsonb的一些簡單操作(增刪改查) 更新操作(attributes屬性為jsonb型別) 方法定義: jsonb_set(target jsonb, path text[], new_value j
Elastic Search 學習入門之ES的簡單操作命令
curl是利用URL語法在命令列方式下工作的開原始檔傳輸工具,使用curl可以簡單實現常見的get/post請求。簡單的認為是可以在命令列下面訪問url的一個工具。在centos的預設庫裡面是有curl工具的,如果沒有請yum安裝即可。(以下操作均是基於ElasticSearch6.5.0版本的
C 之FileInfo的簡單操作
和DirectoryInfo一樣,FileInfo類同樣是很方便的就能實現複雜的功能。 如下,我們一起來看一下一個簡單的小例子吧。using System;using System.Collections.Generic;using System.Linq;using
python之Numpy庫簡單操作
在windows中,Numpy安裝與其他庫一樣,可通過pip install numpy安裝,也可以自行下載原始碼,然後用pip install 路徑+檔名全稱(包括.字尾檔名)進行安裝,原始碼
golang-redis之list型別簡單操作
1:安裝redigo go get github.com/garyburd/redigo/redis 2:連線redis(通過ip埠) import ( "github.com/garyburd/redigo/redis" ) c, err
python之scipy庫簡單操作
Scipy提供了真正的矩陣,以及大量基於矩陣運算的物件與函式,功能包含最優化,線性代數,積分,插值,擬合,特殊函式,快速傅立葉變換,訊號處理和影象處理,常微分方程求解等,Scipy依賴於Numpy庫,因此安裝Scipy時應先安裝Numpy庫,Scipy安裝與其他庫一樣,可通
golang-redis之string型別簡單操作
1:安裝redigo go get github.com/garyburd/redigo/redis 2:連線redis(通過ip埠) c, err := redis.Dial("tcp", "192.168.2.225:6379") if err
Redis入門很簡單之二【常見操作命令】
哈希表 shu 分享 排序。 sca ann mongodb pin set Redis入門很簡單之二【常見操作命令】 博客分類: NoSQL/Redis/MongoDB redisnosql緩存 Redis提供了豐富的命令,允許我們連接客戶端對其進行直接
Linux命令簡單操作之sed
es2017 字符串 選項 常用 images sed 匹配 lena options sed sed語法格式: sed[options ]‘command’ file(s) sed常用選項: -n:只有經過sed 特殊處理的那一行(或者動作)才會被列出來
Linux命令簡單操作之awk
del cond name pattern 替換 linu 一個 pla mman awk 命令格式: awk ‘BEGIN{commands} pattern {commands} END{commands}’file 工作方式: 1.執行BEGIN{co
大數據開發學習之hbase命令的簡單操作
數據 小白 hba name isa 出現 base 相同 大牛 小課堂之hbase命令的簡單操作 1、創建一張表 create 表名,列族名 create ‘t0‘,‘cf01‘ --把單引號去掉? undefined local variable or method `
linux之簡單操作復制 vim裏面的搜索
輸入 onf 配置文件 一個 問題 回車 開始 linux 跳轉 =================================linux vim 復制============================1、復制1)單行復制在命令模式下,將光標移動到將要復制的行處,
Docker學習之二:Docker基本簡單操作命令
查詢tomcat映象; docker search tomcat 進入容器 docker exec -it 458(容器ID) /bin/bash 檢視容器完整id docker inspect 14b7 | grep Id 上傳war包到docker docker te
Node學習基礎(四)之檔案的流操作以及pipe管道簡單舉例
舉例說明: // 1.引入模組 let fs =require('fs'); //2.建立讀入流 let rs = fs.createReadStream('D:/Pictures/Saved Pictures/testSP.mp4'); //要讀取視訊的位置 let ws
CSS3之opacity屬性的簡單使用
什麼是opacity? opacity 屬性設定元素的不透明級別。 怎麼使用? <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">
zookeeper 之簡單操作
ZooKeeper的資料模型及其API支援以下九個基本操作: 我們來使用ZooKeeper Java shell對上面中提到的ZooKeeper操作進行演示: 用ThisIsTheRootNode作為資料建立一個名為root的znode: [zk: localhost(CONN
MongoDB學習03之JAVA簡單操作增刪改查
經過前面幾篇博文的學習,對MongoDB已經有一定的瞭解了,現在用JAVA來操作MongoDB,進行一些簡單的增刪改查,查詢有複雜查詢,這裡不一一列舉,同學自己看看API就OK了。 MongoDB JAVA驅動下載:https://github.c
Python之Pillow進行簡單的影象操作
顏色與RGBA值 計算機通常將影象表示為RGB值,或者再加上alpha值(通透度,透明度),稱為RGBA值。在Pillow中,RGBA的值表示為由4個整陣列成的元組,分別是R、G、B、A。整數的範圍0~255。RGB全0就可以表示黑色,全255代表黑色。可以猜測(255, 0, 0, 255)代
資料結構之 佇列(Queue)的實現及簡單操作
在生活中我們經常會遇到排隊的事情,比如說排隊買東西,大家依次站一個隊,隊頭的人要比後面的人先買到東西,先到先得,然後買完東西就會離開這個隊 而我們平時為了解決在比如說打客服電話,排隊叫號之類的應用問題時我們就應用了 佇列 這種資料結構,實現先到先得,先入先出的排隊功能
STM32學習之:GPIO最簡單操作步驟
需用到的".c"庫函式為 stm32f10x_gpio.c 和stm32f10x_rcc.c 1. 啟動相應Port x的RCC(復位始終控制) RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOx, ENABLE);