NodeJS——在 PostgreSQL 查询中添加字符串数组

NodeJS–Add Array of String in PostgreSQL Query

我正在尝试编写一个 postgres 查询(使用使用 node-postgres 包创建的池在 nodejs 中执行),它将在 table 中插入一个新行。 table 中的其中一列的类型为 text[]。我的代码如下:

pool.query('INSERT INTO paragraphs (lines) VALUES (ARRAY[]::TEXT[]) RETURNING id', [my_array], (err, results) => {
            if (err) {
              reject(err)
              return;
            }
            
            resolve(results.rows[0].id)
})

paragraphs 是我的 table 的名称,linestext[] 类型的列的名称。 my_array 是一个字符串列表。我的问题是插入的不是字符串数组,而是格式类似于数组的单个字符串。 e.x.:

{"[\"First line\", \"Second line\", \"Third Line\"]"}

我希望它是:

{"First line", "Second line", "Third Line"}

我也尝试取出 ARRAYTEXT 部分(所以 sql 看起来像上面查询中的 INSERT INTO paragraphs (lines) VALUES () RETURNING id ),但后来我收到了错误:

malformed array literal: "["New First line", "Second line", "Third Line"]"
DETAIL:  "[" must introduce explicitly-specified array dimensions.

通过池执行的查询将字符串列表插入 Node.js 中的 PostgreSQL tables 的正确方法是什么?

根据:https://node-postgres.com/features/queries#parameterized-query

Parameters passed as the second argument to query() will be converted to raw data types using the following rules: ...

Array

Converted to a string that describes a Postgres array. Each array item is recursively converted using the rules described here.

所以:

VALUES ()VALUES (::TEXT[])应该就够了。