From: | Tom Smith <tomsmith1989sk(at)gmail(dot)com> |
---|---|
To: | Chris Mair <chris(at)1006(dot)org> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: retrieve subset of a jsonb object with a list of keys |
Date: | 2015-08-19 15:05:02 |
Message-ID: | CAKwSVFEvTRfDe9ujxy10uJ2f+XROivWVwBjYUFZ_5P2eB-SQQw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
thanks. I hope a new function can be added(with high perf C function) in
new release to allow something like
json_subset(jsonb_object, [key1,key2])
On Wed, Aug 19, 2015 at 9:46 AM, Chris Mair <chris(at)1006(dot)org> wrote:
> On 19/08/15 13:37, Tom Smith wrote:
> > Hi:
> >
> > I have a jsonb columne with json object like belo
> > {"a": 1, "b":2, "c":3}
> >
> > I'd like to get subset of the object with key list ["a","c"]
> > so it retruns json object of
> >
> > {"a": 1, "c":3}
> >
> > something like
> >
> > select '{"a": 1, "b":2, "c":3}'::jsob ->'["a","c"]'
> >
> > what would be the most efficient (and simplest if possible) to get the
> > subset with the key list?
>
> Hi,
>
> I came up with this:
>
> select json_object_agg(key, value)
> from jsonb_each_text('{"a": 1, "b":2, "c":3}'::jsonb)
> where key in ('a', 'c');
>
> IDK if there is a shorter way. You might want to wrap this in a function.
>
> Bye,
> Chris.
>
>
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Bianchi Quota Leonardo | 2015-08-19 15:31:09 | R: Chars problem restoring to ps 8.4 (utf8) a dumped db from ps 8.1 (latin9) |
Previous Message | Karthik Viswanathan | 2015-08-19 14:55:02 | live and dead tuples are zero on slave running on tmpfs |