如何在 prisma 中使用 findUnique 和 post id 和 prodCode 来查找帖子

Posted

技术标签:

【中文标题】如何在 prisma 中使用 findUnique 和 post id 和 prodCode 来查找帖子【英文标题】:how to find post by using findUnique in prisma with post id and prodCode 【发布时间】:2021-12-10 17:59:28 【问题描述】:

我只想找到一个通过帖子 id 和 prodCode 匹配的帖子

下面是我的查询代码。它不起作用。 如果我将 findUnique 更改为 findFirst。它有效。

const post = await client.post.findUnique(
          where: 
            AND: [
               id: postId ,
              
                product: 
                  prodCode,
                ,
              ,
            ],
          ,
        );

棱镜模型

model Product 
  id       Int       @id @default(autoincrement())
  prodName String
  prodCode String    @unique
  posts    Post[]
  holdings Holding[]
  proposes Propose[]



model Post 
  id        Int      @id @default(autoincrement())
  user      User     @relation(fields: [userId], references: [id])
  userId    Int
  product   Product  @relation(fields: [productId], references: [id])
  productId Int
  title     String
  content   String
  createdAt DateTime @default(now())

【问题讨论】:

【参考方案1】:

由于Post.id 是唯一的,您也不需要prodCode 过滤。您可以使用所需的id 查询post 记录,然后检查连接的product 是否具有正确的prodCode

我会这样做:

const post = await prisma.post.findUnique(
    where: 
      id: postId
    ,
    include: 
      product: true
    
  );

  if (post.product.prodCode === prodCode) 
    // No result for desired query
   else 
    // "post" variable contains result of desired query
  

【讨论】:

以上是关于如何在 prisma 中使用 findUnique 和 post id 和 prodCode 来查找帖子的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Docker 中使用 Prisma 2

如何在 prisma 中使用带有外键的 createMany?

如何在 prisma 中使用 connectOrCreate 与多对多

如何使用 prisma (graphql) 集群

如何在 prisma / postgresql 中拥有自定义 ID?

如何在 Dockerized GraphQL + Postgres 设置中运行 Prisma 迁移?