Node.js 在pg promise中使用参数列表的.batch
我正在运行nodejs和pgpromise,并希望使用批处理函数创建一个事务,该事务包含围绕多个更新的BEGIN和COMMIT 这是我的代码:Node.js 在pg promise中使用参数列表的.batch,node.js,postgresql,pg-promise,Node.js,Postgresql,Pg Promise,我正在运行nodejs和pgpromise,并希望使用批处理函数创建一个事务,该事务包含围绕多个更新的BEGIN和COMMIT 这是我的代码: db.tx(function (t) { return this.batch(function() { for (var i = 0; i < cars.length; i++) { return db.any('UPDATE ... ', [car_id, cars[i].votes]);
db.tx(function (t) {
return this.batch(function() {
for (var i = 0; i < cars.length; i++) {
return db.any('UPDATE ... ', [car_id, cars[i].votes]);
}
});
})
db.tx(功能(t){
返回此.batch(函数(){
对于(变量i=0;i
然而,它似乎不起作用,因为什么都没有发生。难道不能为这样的输入创建我的批处理列表吗?方法不使用函数作为参数,而是使用一系列承诺来解析
还有很多关于如何使用它的例子(也在StackOverflow上),从官方文档开始:
对于一组更新,您只需创建一个更新查询数组,然后使用以下命令执行它们:
额外的
同一类型的多个更新可以作为单个查询执行,以获得更好的性能。请参阅和方法。方法不将函数作为参数,它需要解析一系列承诺
还有很多关于如何使用它的例子(也在StackOverflow上),从官方文档开始:
对于一组更新,您只需创建一个更新查询数组,然后使用以下命令执行它们:
额外的
同一类型的多个更新可以作为单个查询执行,以获得更好的性能。请参阅和方法。从官方文档开始,到处都有这样的示例:。从官方文档开始,到处都有这样的示例:。抱歉,但是一直在努力使用正确的方法。谢谢你。@MichaelNielsen我已经添加了关于多个更新的主题的进一步研究,以防有一天你到达那里;)抱歉,但仍在使用正确的方法。谢谢你。@MichaelNielsen我已经添加了关于多个更新的主题的进一步研究,以防有一天你到达那里;)
db.tx(t => {
const queries = cars.map(c => {
return t.none('UPDATE ... ', [c.car_id, c.votes]);
});
return t.batch(queries);
})
.then(data => {
// success
})
.catch(error => {
// error
});