所以我一直试图在互联网上找到一个运气好的答案。
postgres是否支持在单个字段中包含对象数组,例如
[
{
key: value,
another: value
},
{
key: value,
value: key
}
]
并将其保存到单个字段?
另外,您将如何执行单INSERT
或UPDATE
它会是:UPDATE db SET value='[{ key: val }, { key: val }]'
??
答案 0 :(得分:1)
这取决于你猜对象的定义。
您可以使用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
答案 1 :(得分:1)
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)