【发布时间】:2016-12-20 20:36:56
【问题描述】:
我需要以某种方式将 JSON 对象推送到可能存在的 JSON 对象的嵌套数组 - 请参阅下面 JSON sn-p 中的“页面”。
{
"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 执行此操作的最佳和最简单的方法是什么?
【问题讨论】:
标签: postgresql jsonb postgresql-9.5