【发布时间】:2019-03-21 08:23:56
【问题描述】:
我喜欢运行 PostgreSQL 10 服务器作为后端,使用 ngx_postgres 作为前端的 nginx。数据库以JSONB格式存储数据:
=# CREATE TABLE dump (
id bigserial primary key,
data jsonb not null
);
数据可以这样查询:
=# SELECT data FROM dump;
使用 ngx_postgres,可以直接从 nginx 访问 PostgreSQL 数据库:
upstream postgresql {
postgres_server localhost dbname=default user=user password=secret;
}
server {
listen 80;
location /postgresql/ {
rds_json on;
postgres_pass postgresql;
postgres_query HEAD GET "SELECT data FROM dump"
postgres_rewrite no_rows 410;
postgres_output rds;
}
}
但结果以文本形式返回,带有转义的双引号,而不是预期的 JSON:
[{"data":"{\"id\": \"00ce160e5cbb49b9bc2ee6f243f87841\", \"name\": \"foo\"}"}]
如何将查询结果作为 JSON 对象返回?
【问题讨论】:
标签: json postgresql nginx jsonb