Potrzebuję jakoś popchnąć obiekt JSON do zagnieżdżonej tablicy potencjalnie istniejących obiektów JSON - zobacz "strony" w poniższym fragmencie kodu JSON.Jak przesłać obiekt JSON do tablicy zagnieżdżonej w kolumnie JSONB
{
"session_id": "someuuid",
"visitor_ui": 1,
"pages": [
{
"datetime": "2016-08-13T19:45:40.259Z",
"duration,": 0,
"device_id": 1,
"url": {
"path": "/"
}
},
{
"datetime": "2016-08-14T19:45:40.259Z",
"duration,": 0,
"device_id": 1,
"url": {
"path": "/test"
}
},
// how can i push a new value (page) here??
]
"visit_page_count": 2
}
Jestem świadomy jsonb_set(target jsonb, path text[], new_value jsonb[, create_missing boolean])
(choć nadal ze znalezieniem go trochę trudny do zrozumienia), ale myślę, korzystając, że wymagałoby to ja pierwszy SELECT
cała kolumna JSONB, aby dowiedzieć się, jak wiele elementów wewnątrz "stron" już istnieje i jakiego indeksu wypchnąć go do korzystania z jsonb_set
, prawda? Mam nadzieję, że w PostgreSQL 9.5/9.6 można uzyskać odpowiednik tego, co znamy w językach programowania, np. pages.push({"key": "val"})
.
Jaki byłby najlepszy i najprostszy sposób, aby to zrobić z PostgreSQL 9.5 lub 9.6?
Wow it works! Dziękuję bardzo - również świetnie poświęciłeś czas, aby wyjaśnić to bardziej szczegółowo, ponieważ nie byłem w stanie tego zrozumieć czytając dokumenty. :-) – Dac0d3r
Cieszę się, że mogę pomóc i, tak, dokumenty mogą być trudne do odczytania, szczególnie te tabele, w których opisane są funkcje. Umieszczę to w Dokumentacji SO z większą ilością opracowań. – Patrick
Czy istnieje sposób ustawienia właściwości "pages", jeśli NIE istnieje? Bez konieczności wcześniejszej osobnej aktualizacji? – Dac0d3r