I want to update a jsonb column to replace an element of array inside it e.g Tv to TV. I am using postgresql 12.4 with 5M rows on that table.
Top 10 Rows:
categories
["Air Conditioner", "Kitchen", "Bedding/Linens", "Parking", "Tv", "Child Friendly", "Internet", "Laundry"]
["Hot Tub", "Air Conditioner", "Kitchen", "Bedding/Linens", "Tv", "Wheelchair Accessible", "Pool", "Internet", "Laundry"]
["Hot Tub", "Air Conditioner", "Kitchen", "Bedding/Linens", "Balcony/Terrace", "Parking", "Tv", "Wheelchair Accessible", "Child Friendly", "Pool", "Internet", "Laundry"]
["Balcony/Terrace", "Kitchen", "Bedding/Linens", "Tv", "Wheelchair Accessible", "Internet", "Laundry"]
["Air Conditioner", "Kitchen", "Bedding/Linens", "Parking", "Tv", "Pool", "Internet", "Laundry"]
["Hot Tub", "Air Conditioner", "Kitchen", "Bedding/Linens", "Parking", "Balcony/Terrace", "Tv", "Child Friendly", "Internet", "Pet Friendly", "Laundry"]
["Hot Tub", "Air Conditioner", "Kitchen", "Bedding/Linens", "Balcony/Terrace", "Parking", "Tv", "Wheelchair Accessible", "Pool", "Internet", "Laundry"]
["Air Conditioner", "Kitchen", "Bedding/Linens", "Tv", "Wheelchair Accessible", "Internet", "Laundry"]
["Kitchen", "Bedding/Linens", "Parking", "Tv", "Internet", "Laundry"]
["Air Conditioner", "Kitchen", "Bedding/Linens", "Parking", "Tv", "Wheelchair Accessible", "Internet", "Laundry"]
What is working:
UPDATE test_jsonb_update
SET amenity_categories = replace(amenity_categories::TEXT,'"Tv"','"TV"')::jsonb
WHERE id < 10;
What I want:
I want to know other alternatives to update that element on jsonb column. I've seen this example
https://stackoverflow.com/a/35349699/1138192 and I want to use something like jsonb_set
on my
case also. Let me know other alternatives and best practices as I have 5M records to do update that