当前位置:  开发笔记 > 编程语言 > 正文

类型枚举的数组从Postgres作为字符串返回

如何解决《类型枚举的数组从Postgres作为字符串返回》经验,为你挑选了1个好方法。

给定一个自定义枚举: CREATE TYPE vehicle AS ENUM ('car', 'truck', 'bicycle');

像这样的表:

CREATE TABLE vehicle_events (
  timestamp timestamptz NOT NULL DEFAULT current_timestamp,
  labels vehicle[] NOT NULL,
  mentions int4[] NOT NULL DEFAULT '{}'
);

当这样从我们的节点应用程序中查询时:

SELECT * FROM vehicle_events;

这将返回一个json结构,如下所示:

[{"timestamp": "January, 06 2016 23:04:56", "labels": "{'car'}", "mentions": [1,2,3,4]}]

我的问题确实是,为什么labels数组以字符串形式返回(还请注意,提到的base类型的数组不是)?这是因为它是一个数组ENUM吗?如果是这样,如何将其强制放入常规数组中?为什么postgres以这种方式退回它?

sqlfiddle链接:http ://sqlfiddle.com/#!15/637ce/1



1> 小智..:

如果未将postgres数组解释为数组,这就是它们的外观。如果在查询中使用to_json(),则数组将适当返回。

喜欢: SELECT to_json(labels) as labels FROM vehicle_events;

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有