On 24 February 2015 at 19:16, Josh Berkus <j...@agliodbs.com> wrote: > > > Is there a way to take the json: > > > > '{"a": 1, "b": 2, "c": {"type": "json", "stuff": "test"}, "d": > > ["aa","bb","cc","dd"]}' > > > > and add "ee" to "d" without replacing it? I can think of ways of > > currently doing it, but it's very convoluted just for pushing a value to > > an array. > > Can you think of a reasonable syntax for doing that via operators? I > can imagine that as a json_path function, i.e.: > > jsonb_add_to_path(jsonb, text[], jsonb) > > or where the end of the path is an array: > > jsonb_add_to_path(jsonb, text[], text|int|float|bool) > > But I simply can't imagine an operator syntax which would make it clear > what the user intended. >
No, there probably isn't a sane operator syntax for such an operation. A function would be nice. I'd just want to avoid hacking away at arrays by exploding them, adding a value then re-arraying them and replacing the value. -- Thom