Node.js 如何在postgres中进行多重查询

Node.js 如何在postgres中进行多重查询,node.js,postgresql,Node.js,Postgresql,我正在项目中使用节点postgres池 在某些情况下,我需要在for循环中处理insert操作,如下所示: data.forEach(items => { pgPool.query('INSERT INTO cache (hash, data) VALUES($1::text, $2::json)', [key, JSON.stringify(items)]) }) 我认为如何插入多个查询不是一个好方法 还有更好的办法吗 例如pgPool.multipleQueryqueryA

我正在项目中使用节点postgres池

在某些情况下,我需要在for循环中处理insert操作,如下所示:

data.forEach(items => { 
    pgPool.query('INSERT INTO cache (hash, data) VALUES($1::text, $2::json)', [key, JSON.stringify(items)])
})
我认为如何插入多个查询不是一个好方法

还有更好的办法吗

例如pgPool.multipleQueryqueryArray

还是我的解决方案正确


谢谢您的帮助。

我不知道数据是什么样子,但我想是这样的:

let data = [
  ["item1", "item2"],
  ["item3", "item4"],
  ["item5", "item6"]
];
我建议您使用并构建查询:

let parameters = data
    .map(
        (items, i) => ["($", (i * 2) + 1, "::text, $", (i * 2) + 2, "::json)"].join("")
    ).join(",");
//($1::text, $2::json),($3::text, $4::json),($5::text, $6::json)

let key = "hash";
let parametersValues = data
    .flatMap(items => [key, JSON.stringify(items)]);
//["hash", "["item1","item2"]", "hash", "["item3","item4"]", "hash", "["item5","item6"]"]

let queryText = "INSERT INTO cache (hash, data) VALUES" + parameters;
//INSERT INTO cache (hash, data) VALUES($1::text, $2::json),($3::text, $4::json),($5::text, $6::json)

pgPool.query(queryText, parametersValues);

有多少物品?@RobertHarvey在最佳情况下为1,在最坏情况下为50