Prisma - 总和 - 超过 350'000 行

Prisma - Sum amount - more than 350’000 rows

我的发票模型如下:

type Invoice {
  id
  amount
}

我有 350'000 张发票。我如何计算所有发票的金额。 (最大限制为 1000)

此 hack 无法工作:https://www.prisma.io/forum/t/query-all-size-limit/557,因为我的行太多。

相关问题:https://github.com/prisma/prisma/issues/2162 https://github.com/prisma/prisma/issues/259 https://www.prisma.io/forum/t/query-all-size-limit/557 https://www.prisma.io/forum/t/sun-amount-more-than-350000-rows/7611

您可以在 Prisma 中使用自定义 SQL 查询构建自定义解析器,该查询将为您求和;

一个示例实现可能类似于:

const client = new Client({
  database: "prisma",
  user: "...",
  password: "...",
  host: "localhost",
  port: 3000
})

const resolvers = {
  Query: {
    async sumInvoices(parent, args, context, info){
      const response = await client.query(
        `SELECT SUM(amount) FROM Invoice WHERE YOUR_CONDITION`
      );
      return response;
    };
};

您也可以查看 Ben Awad 的视频以获取更多示例:https://www.youtube.com/watch?time_continue=12&v=YUjlBuI8xsU