Postgres 是否允许 json[] 或 jsonb[]?

Does Postgres allow json[] or jsonb[]?

所以我一直在网上寻找答案,运气为0。

postgres 是否支持在单个字段中包含对象数组,例如

[
  {
    key: value,
    another: value
  },
  {
    key: value,
    value: key
  }
 ]

并将其保存到单个字段中?

还有你会如何表演单曲INSERTUPDATE

会不会是:UPDATE db SET value='[{ key: val }, { key: val }]' ??

我猜这取决于你对对象的定义。

您可以使用 JSON:http://www.postgresql.org/docs/current/static/functions-json.html 并插入非结构化数据:

# create table test (field json);
CREATE TABLE
# insert into test values ('[1,2,3]');
INSERT 0 1
# insert into test values ('[{"key": "value"}, {"key": "value"}]');
INSERT 0 1
# select * from test;
                field                 
--------------------------------------
 [1,2,3]
 [{"key": "value"}, {"key": "value"}]

也支持数组:http://www.postgresql.org/docs/current/static/arrays.html

Postgres 支持任何有效的 json 值,包括 json 数组。 您要使用的是单个 json (jsonb) 列,而不是 Postgres 数组:

create table example (id int, val jsonb);
insert into example
values (1, '[{ "name": "aga" }, { "gender": "female" }]');

select * from example;

 id |                   val                   
----+-----------------------------------------
  1 | [{"name": "aga"}, {"gender": "female"}]
(1 row)