我正在使用node-querybuilder批量更新数据。
这就是我在做的事。
const key = 'tripId';
const where = {'tripId =' : id}
const dataset=
[ { studentId: 43 },
{ studentId: 42 }
];
db.queryBuilder.update_batch('trip_students_booking', dataset, key, where, (err, res) => {
if (err) return console.error(err);
});
作为回应,我收到来自node-querybuilder
错误:update_batch():您必须提供一些数据才能批量更新!
答案 0 :(得分:1)
首先,我想建议你,避免使用https://www.npmjs.com/package/node-querybuilder#update_batch,因为这个库没有生产就绪并且有bug(我创建了拉取请求https://github.com/kylefarris/node-querybuilder/pull/24)。您可以查看http://knexjs.org。
如果您想继续,则必须在Key
的对象中传递dataset
。在文档中,
当条件是可选的时,需要每个数据对象中表示where子句的键的名称。
和索引键,你的代码应该是
const key = 'tripId';
let dataset = [{
tripId: id,
studentId: 43
},
{
tripId: id,
studentId: 42
}
];
db.queryBuilder.update_batch('trip_students_booking', dataset, key, (err, res) => {
if (err && err.length > 0) return console.error(err);
});
如果您想在合并和发布模块的新更新之前尝试,可以尝试将文件const results = null;
中的第143行从let results = null;
更新为./node_modules/node-querybuilder/drivers/mysql/query_builder.js
我希望你能