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

Dan*_*Dan 5 bookshelf.js knex.js

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

author: 'John Doe',
title: 'aaaaa',
content: 'aaaaaaaa'
count: 54,
Run Code Online (Sandbox Code Playgroud)

我想根据count的值检索数据,我想得到4个count值最高的数据。

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

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

有什么方法可以做,forge({ count: 3 data that has the highest count value })或者
我应该添加什么代码才能实现这一目标?

Gan*_*ead 5

orderByfetchPage结合

Article
  .orderBy('-count')
  .fetchPage({
    pageSize: 3
  })
  .forge()
Run Code Online (Sandbox Code Playgroud)

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

  knex('articles')
    .orderBy('count', 'desc')
    .limit(3)
Run Code Online (Sandbox Code Playgroud)

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