如何获得表中列值最高的3个数据



我使用knex和bookshelf,我的表由作者、标题、内容、计数组成,每个数据看起来像这样:

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

我想根据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与fetchPage合并

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

这突出了我的团队移除书架,只使用基本膝关节的原因。除非您想要获取相关模型,否则不使用ORM层会更简单。等效knex代码为:

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

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

最新更新