2016-02-02 122 views
2

所以我一直在試圖在網上找到一個答案0運氣。Postgres允許json []或jsonb []嗎?

postgres支持在單個字段中有對象數組,例如

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

並將其保存到單個字段?

而且你會如何進行單INSERTUPDATE

會是:UPDATE db SET value='[{ key: val }, { key: val }]'

+3

'JSON []'將是文檔的數組。你正在尋找一個包含數組的文檔 - 是的,可以用'json' –

回答

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) 
+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

+0

歡呼的答案! –