微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在带有 Prisma 的选择查询中使用 _count

如何解决在带有 Prisma 的选择查询中使用 _count

我目前正在重写我的 discord 机器人,在此过程中,我需要重写所有 sql 查询并将它们转换为 prisma 查询

sql 查询 I',试图转换为 prismaconnection.query('SELECT inviterId,count(*) as count FROM invites where serverId = ? AND valid = 1 GROUP BY inviterId ORDER BY count DESC')

我目前有这个:

    let leaderboard = await client.prisma.invites.aggregate({
      _count: {
        inviterId: true,},where: {
        serverId: message.guildID,valid: true,orderBy: {
        inviterId: "desc",}
    });
    console.log(leaderboard);

返回:{ _count: { inviterId: 25 } }

但是,我还需要在选择查询中返回数据。据我所知,不可能在 findMany 查询中使用 _count,所以我尝试在聚合查询中使用 select,但这也不起作用。

我不确定如何选择要返回的数据并按最大计数排序。任何帮助将不胜感激。

解决方法

您需要使用 groupBy API,而不是聚合。

摘自 Prisma 文档: https://www.prisma.io/docs/concepts/components/prisma-client/aggregation-grouping-summarizing

const groupUsers = await prisma.user.groupBy({
  by: ['country'],_sum: {
    profileViews: true,},})

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。