我正在尝试从 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) 我正在尝试使用微服务架构构建一个 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)