如何解决在带有 Prisma 的选择查询中使用 _count
我目前正在重写我的 discord 机器人,在此过程中,我需要重写所有 sql 查询并将它们转换为 prisma 查询。
sql 查询 I',试图转换为 prisma:
connection.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 举报,一经查实,本站将立刻删除。