如何使用 max 从 Knex 查询中获取值?

How can I get the value from a Knex query using max?

我有一个针对 MySQL table 的非常简单的 Knex 查询来查找 id 列的最大值:

const maxId = await knex('some_table').max('id').first()

但是这个 returns 一个 TextRow 对象,只有一个奇怪的名字 属性。来自 console.log

TextRow { 'max(`id`)': 99 }

有没有一种简单的方法可以让我获取值,或者我必须像这样使用对象 属性 表示法:

const idValue = maxId['max(`id`)']

看来最简单的答案是为结果添加别名,如第二个示例所示 here:

const maxIdQuery = await knex('some_table').max('id as maxId').first()
console.log(maxIdQuery.maxId)        // shows the value

替代语法:

const maxIdQuery = await knex('some_table').max('id', { as: 'max_id' })
console.log(maxIdQuery[0]['max_id'])

希望这对以后的人有所帮助。