我怎样才能比JSON数组对象Postgres字段更少?但性能要好得多

时间:2017-10-30 04:33:59

标签: postgresql jsonb postgresql-10

我想通过特定的字段操作检索数据,它存储对象的数组。我想在其中添加新对象。

CREATE TABLE justjson ( id INTEGER, doc JSONB);
INSERT INTO justjson VALUES ( 1, '[
  {
    "name": "abc",
    "age": "22"
  },
  {
    "name": "def",
    "age": "23"
  }
]');

检索年龄大于等于23的数据

我有这样的解决方案,但它会大大降低查询性能。

我的解决方案是 使用jsonb_array_elements:

t=# with a as (select *,jsonb_array_elements(doc) k from justjson)
select k from a where (k->>'age')::int >= 23;
              k
------------------------------
 {"age": "23", "name": "def"}
(1 row) 

我需要一种解决方案或其他能够以高性能来做这件事的事情。

0 个答案:

没有答案