从knex事务查询结果中提取一列

时间:2019-06-11 15:25:53

标签: knex.js

我有一个异步函数来执行以下knex事务(在MySQL数据库上):在表中查询特定列上具有特定范围的所有行;更新所有这些行的列值;返回所有这些行的 all 列:

spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect

此代码有效,但是为了提高效率(一个SQL操作),我想使用“ whereIn”而不是在“ for”循环中运行。 有什么方法可以从queryResult中提取“ _id”列值以供whereIn()。update()使用? 在不丢失原始结果的情况下-即 all 列-函数需要返回的结果

1 个答案:

答案 0 :(得分:0)

在我走了几分钟(总是走了!)之后,我发现这不仅仅是一个knex,而是一个JavaScript问题,只是解析对象:

                const result = queryResult.map(({ _id }) => _id)
                await trx.into(tbl).whereIn('_id', result).update({ published: Math.round(new Date().valueOf() / 1000) })