gpt4 book ai didi

postgresql - 如何从 Postgres 函数结果中删除函数名称?

转载 作者:行者123 更新时间:2023-11-29 13:09:00 25 4
gpt4 key购买 nike

我想从函数响应中获取 JSON 响应,我能够实现它。但问题是在我得到函数名称的每个响应上还有如何解决这个问题?

当前响应

[
{
"__find_attractions_return_json": {
"name": "Conrad Pond",
"lat": 41.01696,
"lon": -74.22462
}
},
{
"__find_attractions_return_json": {
"name": "Crossway Creek",
"lat": 40.46122,
"lon": -74.26292
}
},
.....
.....
]

要求的结果

[
{
"name": "Conrad Pond",
"lat": 41.01696,
"lon": -74.22462
},
{
"name": "Crossway Creek",
"lat": 40.46122,
"lon": -74.26292
},
.....
.....
]

POSTGRES 函数

CREATE OR REPLACE FUNCTION public.__find_attractions_return_json(point character varying, cty varchar)
RETURNS SETOF json
LANGUAGE 'plpgsql'

COST 100
VOLATILE
ROWS 1000
AS $BODY$
BEGIN
RETURN QUERY
SELECT
json_build_object(
'name', name,
'lat', lat,
'lon', lon
)
FROM places
WHERE country=cty
AND ST_DWithin(geom::geography,ST_GeogFromText(point), 50000, false);
END
$BODY$;

我从 NodeJs 调用这个函数。

我们将不胜感激任何形式的帮助。

最佳答案

demo:db<>fiddle

SELECT
json_agg(elements -> '__find_attractions_return_json')
FROM
mytable,
json_array_elements(mydata) as elements
  1. json_array_elements 将所有数组元素分别展开成一行
  2. 获取可移除键值的每一行
  3. json_agg 聚合这些值对象

关于postgresql - 如何从 Postgres 函数结果中删除函数名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57179533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com