如何获取table中某列最高值的3条数据

How to get 3 data that have the highest value of a column in the table

我正在使用 knex 和书架,我的 table 由作者、标题、内容、计数组成,每个数据如下所示:

author: 'John Doe',
title: 'aaaaa',
content: 'aaaaaaaa'
count: 54,

我想根据count的值取数据,想得到count值最大的4条数据。

如果我想检索所有数据,我是这样做的:

router.get('/', (req, res) => {
   Article.forge().fetchAll().then(article => {
      res.json(article);
   })
}) 

有什么方法可以像 forge({ count: 3 data that has the highest count value })
我应该添加什么代码才能实现此目的?

合并orderBy with fetchPage

Article
  .orderBy('-count')
  .fetchPage({
    pageSize: 3
  })
  .forge()

这凸显了我的团队移除书架并仅使用基本 knex 的原因。除非您想要获取相关模型,否则在没有 ORM 层的情况下处理起来会更简单。 knex等效的knex代码为:

  knex('articles')
    .orderBy('count', 'desc')
    .limit(3)

稍微简单一些,可以直接访问结果行的属性,即 rows[0].id 而不是 rows[0].get('id')