sql >> Database teknologi >  >> RDS >> PostgreSQL

Sådan skubbes et JSON-objekt til et indlejret array i en JSONB-kolonne

Tricket til jsonb_set() er, at den ændrer en del af en jsonb objekt, men det returnerer hele objektet. Så du giver den den aktuelle værdi af kolonnen og stien, du vil ændre ("sider" her, som en streng-array), så tager du den eksisterende matrix (my_column->'pages' ) og tilføj || det nye objekt til det. Alle andre dele af jsonb objekter forbliver, som de var. Du tildeler effektivt et helt nyt objekt til kolonnen, men det er irrelevant, fordi en UPDATE skriver alligevel en ny række til den fysiske tabel.

UPDATE my_table
SET my_column = jsonb_set(my_column, '{pages}', my_column->'pages' || new_json, true);

Den valgfrie create_missing parameter sat til true her tilføjer "pages"-objektet, hvis det ikke allerede eksisterer.




  1. Sådan skriver du det første bogstav i hvert ord i PostgreSQL

  2. Sådan gemmer du underattributter i 3. tabel i laravel

  3. AngularJS | Sådan sender du Jsons data til databasen i Codeigniter

  4. Begrænsningen ved at hente blob-data fra Oracle