我需要以某種方式將JSON對象推送到可能存在的JSON對象的嵌套數組 - 請參閱下面的JSON代碼片段中的「頁面」。如何將JSON對象推送到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
}
我知道了jsonb_set(target jsonb, path text[], new_value jsonb[, create_missing boolean])
的(雖然仍然發現它有點很難理解),但我想利用這一點,就要求我第一SELECT
整個JSONB列,以找出有多少元素裏面的「頁面」已經存在,以及使用什麼索引來使用jsonb_set
,對吧?我希望在Postgres 9.5/9.6中能夠實現與我們在編程語言中所瞭解的相同的功能。 pages.push({"key": "val"})
。
用Postgresql 9.5或9.6做什麼是最好的和最簡單的方法?
哇,它的工作原理!非常感謝你 - 同樣偉大的你花時間更詳細地解釋它,因爲我無法從閱讀文檔中找出它。 :-) – Dac0d3r
很高興能夠提供幫助,而且,有時候,文檔有時可能會很難閱讀,特別是描述功能的這些表格。我將把它放在SO文檔中進行更詳細的說明。 – Patrick
有沒有辦法設置「頁面」屬性,如果它不存在?無需首先進行單獨更新? – Dac0d3r