小编Vak*_*ndu的帖子

NestJS Prisma ORM - 获取数据记录时使用“选择”与“包含”?

我正在尝试从 NestJS(Node.JS 环境)中的 Postgres 数据库获取数据记录。

我使用 Prisma 作为 TypeScript 中的对象关系映射器 (ORM)。

在获取“ADMIN”用户记录时,我无法选择要使用的查询。

请有人解释一下在获取数据记录时使用“select”与使用“include”之间的区别(我是 Prisma 初学者 - 请保持简单)。

提前致谢!

代码如下所示:

使用包括:


const users = await prisma.user.findMany({
  where: {
    role: 'ADMIN',
  },
  include: {
    posts: true,
  },
})

Run Code Online (Sandbox Code Playgroud)

使用选择:

const users = await prisma.user.findMany({
  where: {
    role: 'ADMIN',
  },
  select: {
    posts: true,
  },
})

Run Code Online (Sandbox Code Playgroud)

postgresql node.js typescript nestjs prisma

9
推荐指数
1
解决办法
2万
查看次数

NestJS Postgres Prisma - 错误类型“string”无法分配给参数类型“TemplateStringsArray” sql'

我正在尝试使用微服务架构构建一个 NestJS Monorepo 服务,其中 PostgreSQL 作为数据库,Prisma 作为 ORM,TypeScript 作为主要语言。但是当我尝试执行 Postgres 查询时,我不断收到以下错误。

src/infrastruct/persistence/work.repository.postgres.ts:188:7 - 错误 TS2345:“string”类型的参数不可分配给“TemplateStringsArray | ”类型的参数 Sql'。

我检查了数据类型,它们似乎是兼容的。

请帮我解决这个问题。

堆栈:TypeScript、PostgreSQL、Node.JS、Express 和 NestJS。

提前致谢!

  async findWriterNumber(writerAddress: string): Promise<number> {
    const maxNumber = await this.prismaService.$queryRaw<{
      max: number;
    }>(
      `SELECT coalesce(max('writerNumber') + 1, 0) as max
       FROM "Work"
                LEFT OUTER JOIN "WriterID"
                                ON "Work"."id" = "WorkID"."workId" AND "WorkID"."address" = '${writerAddress}'`,
    );
    return maxNumber[0].max;
  }
Run Code Online (Sandbox Code Playgroud)

postgresql node.js typescript nestjs prisma

5
推荐指数
1
解决办法
4140
查看次数

标签 统计

nestjs ×2

node.js ×2

postgresql ×2

prisma ×2

typescript ×2