首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NestJS Prisma ORM.选择特定字段

NestJS Prisma ORM.选择特定字段
EN

Stack Overflow用户
提问于 2022-09-07 14:50:19
回答 1查看 45关注 0票数 0

有两个表sim_card和观察1到1。必须选择状态为活动(真)且未在观察表中使用的所有SIM卡。(也就是说,创建一个观察卡,并向它发出一个免费和活动的SIM卡。)

代码语言:javascript
复制
model observation {
  id         Int       @id @unique @default(autoincrement()) @map("observation_id")
  number     Int
  contract   String?
  sim_card   sim_card? @relation(fields: [sim_cardId], references: [id], map: "ObservationId_sim_card_key")
  sim_cardId Int?      @unique(map: "ObservationId_sim_card_key")
  firmId     Int?      @unique(map: "Observation_firmId_key")
  client     client?   @relation(fields: [firmId], references: [id], map: "Observation_firmId_key")
}


model sim_card {
  id          Int          @id @default(autoincrement())
  number      String       @unique(map: "Sim_card_number_key")
  operator    String       @default("kyivstar")
  active      Boolean      @default(true)
  busy        Boolean      @default(false)
  observationId Int?
}

就像我想象的那样,(但它不起作用)

代码语言:javascript
复制
findActive(): Promise<CreateSimCardDto[]> {
        return Promise
            .resolve(this.prismaService.sim_card
                .findMany({
                    where: {
                        active: true
                    },
                    include: {
                        observation: {
                            select: {
                                sim_card: false
                            }
                        }
                    }
                }))
            .catch((error) => {
                throw new HttpException(error.message, HttpStatus.BAD_REQUEST);
            })
    }
EN

回答 1

Stack Overflow用户

发布于 2022-09-07 21:10:08

如果您想选择任何不在观察表中的SIM卡,为什么不搜索没有observationId的SIM卡呢?

代码语言:javascript
复制
this.prismaService.sim_card.findMany({
    where: {
        active: true,
        observationId: { equals: null }
    },
}))

如果给定的observationId行未连接到任何observation行,则sim_card将为observation。如果我没有正确地理解您,请告诉我,但是在最后,如果您试图豁免行,则需要将其添加到您的where过滤器中。只有在完成初始筛选之后才使用selectinclude -- selectinclude只是确定返回已过滤行上的哪些字段。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73637560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档