Re: retrieve subset of a jsonb object with a list of keys

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.
>
>
>
>

In response to

Browse pgsql-general by date

  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