假設我有一個這樣的物件:
{
"foo": "bar",
"baz": "quux",
"erase": "me",
"superfluous": true
}
是否可以構造一個 JSONpath 查詢,該查詢回傳一個僅包含原始鍵子集的新物件,例如,
{
"foo": "bar",
"baz": "quux",
}
這種“過濾”的原因是我有一個json屬性作為 PostgreSQL 中物體的一部分,它通常包含一個復雜的 JSON 物件串列。檢索所有資料僅為屬性(每個結果行)就提供了大約 5MB,而對于該特定查詢,我只需要 JSON 物件的兩個屬性。
這是否可以json_path_query()單獨使用,還是我需要不同的方法?
uj5u.com熱心網友回復:
沒有內置函式,但是很容易寫一個:
create function keep_keys(p_input jsonb, p_to_keep text[])
returns jsonb
as
$$
select jsonb_object_agg(key, value
from jsonb_each(p_input) as t(key, value)
where t.key = any (p_to_keep);
$$
language sql;
這:
select keep_keys('{"foo": "bar",
"baz": "quux",
"erase": "me",
"superfluous": true}',
array['foo', 'baz']);
回傳: {"baz": "quux", "foo": "bar"}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/391464.html
標籤:json PostgreSQL的 路径
