首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Postgres & Javascript -如何格式化Nodejs中的对象数组以插入Postgres JSON列?

问Postgres & Javascript -如何格式化Nodejs中的对象数组以插入Postgres JSON列?
EN

Stack Overflow用户
提问于 2021-02-26 14:20:42
回答 1查看 134关注 0票数 1

我在Javascript中有一个对象数组:

代码语言:javascript
复制
const testArray = [{name: 'John', date: '2017-03-15'}, {name: 'Bob', date: '2018-04-29'}];

在nodejs中,我正在运行一条UPDATE语句,该语句将发送到我的Postgres DB。我需要将上面的对象数组插入到Postgres的JSON数组列中。它需要如下所示:

代码语言:javascript
复制
UPDATE persons
SET info = (array['{"name": "John", "date": "2017-03-15"}', '{"name": "John", "date": "2018-04-29"}']::json[])
WHERE id = 1;

问题是我不能让它看起来像那样。当我尝试在nodejs中执行以下操作时:

代码语言:javascript
复制
UPDATE persons
SET info = (array[ ${ testArray } ]::json[])
WHERE id = 1;

当它运行时,它看起来像这样:

代码语言:javascript
复制
UPDATE persons
SET info = (array[[object Object],[object Object]]::json[])
WHERE id = 1;

如果我尝试像这样使用JSON.stringify():

代码语言:javascript
复制
UPDATE persons
SET info = (array[ ${JSON.stringify(testArray) } ]::json[])
WHERE id = 1;

运行时如下所示:

代码语言:javascript
复制
UPDATE persons
SET info = (array[{"name": "John", "date": "2017-03-15"}, {"name": "John", "date": "2018-04-29"}]::json[])
WHERE id = 1;

哪一个更近-它只是缺少了每个对象所需的单引号。

如何在nodejs中正确格式化数组,以便Postgres接受它?

EN

回答 1

Stack Overflow用户

发布于 2021-02-26 14:45:37

好吧,我想通了。首先对对象数组执行以下操作:

代码语言:javascript
复制
const formatArray = finalArray.map(object => `'${JSON.stringify(object)}'`);

现在你可以这样做了:

代码语言:javascript
复制
UPDATE persons
SET info = (array[ ${ formatArray } ]::json[])
WHERE id = 1;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66381025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档