Вставка в массив JSON с помощью Postgres 9.5.13 - PullRequest
0 голосов
/ 13 марта 2019

Предположим, у меня есть следующий столбец и содержимое в таблице базы данных Postgres для конкретной строки:

jsonData

{
    "fruitMap": {
        "sellerStrategy": "aggressive"
    },
    "fruitAvailable": ["peach", "pear", "melon", "apple"]
}

Я бы хотел вставить в "fruitAvailable" значение "star_fruit", если и только если "star_fruit" еще не существует.

Так что: "fruitAvailable": ["peach", "pear", "melon", "apple", "star_fruit"]

Я пробовал все виды вещей, чтобы проверить это, прежде чем писать оператор вставки, например:

select jsonData::jsonb->>'fruitAvailable' || '{"star_fruit"}'
from fruitVendor
where vendorId = 'Peachville'

Это дает:

 ["peach", "pear", "melon", "apple"]{"star_fruit"}

Может кто-нибудь дать мне простой способ вставить в массив fruitAvailable значение star_fruit, если star_fruit не существует, учитывая, что у нас работает Postgres 9.5.13, а jsonb_insert недоступен (?)

Извините, если я нарушаю какие-либо из приведенных выше фактов, я инженер-тестировщик, а не администратор баз данных или разработчик программного обеспечения.

...