【发布时间】:2020-08-13 02:50:41
【问题描述】:
我在点击 POST API 端点时进行数据库查询。该查询需要更新我的networks 表中的Json 列,该表只有3 列(id、name 和json)。我需要用另一个值专门更新 coreEssentials 数组,所以我一直在使用set 'json' = ? SQL 查询,我在整个列中粘贴了我在特定字段中的更改,它可以工作(手动分贝)。唯一的问题是,我需要首先对特定 id 的 json 列进行 SQL 调用 SELECT,(长话短说,但是后端应用程序会在 JSON 中生成一些数据(我需要更新的 coreEssentials 键/对象) ) 然后将其放入数据中,然后在我需要更新之后)。
我在我的 Postgresql GUI (DBbeaver) 中手动执行此操作,我的查询看起来像这样:
update network set "json" = '{
"uid": "randomUid",
"etag": "randomEtag",
"name": "randomNameAgain",
"state": "PENDING",
"Type": "ABC",
"version": 1,
"dealerId": "random_uuid",
"Param": {
"AreaId": 0,
"AreaIdStr": "0.0.0.0",
"DeadInterval": 0,
"HelloInterval": 0
},
"networkData": {
"tic": "311",
"toe": "980",
"tac": "201",
"tac_id": "201",
"timeZone": null
},
"production": false,
"customerName": "random_name",
"IPPool": "0.0.0.0/32",
"customerEmail": "random@email.com",
"coreEssentials": [ ],
"deployment": "A"
}'
coreEssentials 一开始是一个空数组,但我需要将其设置为:
[{
"version": 1,
"component": "purple",
"instanceId": "1"
},
{
"version": 1,
"component": "gray",
"instanceId": "1"
},
{
"version": 1,
"component": "blue",
"instanceId": "1"
} ]
我正在使用带有 pg-promise (Postgresql) 库的 Node JS 后端。谁能给我建议如何进行此查询?
【问题讨论】:
-
不清楚为什么不能在序列化 JSON 之前用数组数据设置
coreEssentials。 -
这就是我最终做的事情......对不起,我不是 Javascript 开发人员! :(谢谢!
标签: javascript sql node.js json postgresql