You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PrismaJS:如何按点赞数对帖子进行降序排序?

按点赞数量排序帖子的Prisma实现方法

方法一:获取完整帖子数据并按点赞数排序

通过include关联点赞计数,同时指定排序规则,既能拿到完整的帖子信息,又能实现按点赞数从多到少排列:

const posts = await prisma.post.findMany({
  // 包含每个帖子的点赞数量统计
  include: {
    _count: {
      select: { likes: true }
    }
  },
  // 按点赞数量降序排序
  orderBy: {
    _count: {
      likes: 'desc'
    }
  },
  // 可选:筛选已发布的帖子
  // where: { published: true }
});

返回的每条帖子数据中,_count.likes字段即为该帖子的点赞总数。

方法二:分组统计点赞数并排序

如果只需要帖子核心信息和点赞数统计结果,可使用groupBy实现:

const postLikeStats = await prisma.post.groupBy({
  // 指定分组字段,必须包含主键id,可按需添加其他字段(如title)
  by: ['id', 'title'],
  // 统计每个分组的点赞数量
  _count: {
    likes: true
  },
  // 按点赞数量降序排序
  orderBy: {
    _count: {
      likes: 'desc'
    }
  }
});

注意事项

  • 需确保Prisma版本在2.10及以上,_count语法才会生效
  • 可根据业务需求添加where筛选条件,比如仅统计已发布的帖子

内容的提问来源于stack exchange,提问作者Daryl Wong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 11:32:07