[英]How to update entire JSON object in JSONB postgres column except 1 field
[英]Postgres searching with JSONB field for keys and/or values of json object
我正在尋找如何正確查詢 Postgres JSONB 字段。 假設我有一個 JSON object 像這樣
{"key1": ["value1", "value2"], "key2": ["value1", "value3"]}
我將它存儲在“數據”字段中,我可以查詢密鑰是否存在。
SELECT data from somethings WHERE data ? "key1"
或者鍵和值。
SELECT data from somethings WHERE data -> "key1" ? "value1"
但我正在努力通過關鍵值的存在進行搜索。 我正在尋找類似的東西。 基本上我想找到一個值的存在,無論是頂級鍵還是每個數組中的值之一。
SELECT data from somethings WHERE data ? ".*" -> "value1"
我想我正在尋找 jsonb_each 一段時間,但我不確定如何利用它。 有什么想法嗎?
您可以使用 JSON 路徑表達式:
select *
from something
where data @? '$.* ? (@[*] == "value1")'
$.*
遍歷所有鍵,然后@[*]
遍歷每個鍵的所有數組元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.