NodeJS Prisma findMany,其中关系不为空

yhived7q  于 2023-08-04  发布在  Node.js
关注(0)|答案(1)|浏览(140)

我有这两个低端型号,我想列出它们的所有子类别及其菜单,前提是菜单不是空的。

model SubCategory {
  id         Int        @id @default(autoincrement())
  label      String
  image      String
  categories Category[] @relation("CategoryToSubCategory")
  menu       Menu[]     @relation("MenuToSubCategory")
  createdAt  DateTime   @default(now())
  updatedAt  DateTime   @updatedAt
}

model Menu {
  id                     Int                     @id @default(autoincrement())
  name                   String                  @db.VarChar(64)
  description            String                  @db.Text
  favoriteMenus          FavoriteMenus[]
  ingredients            Ingredients[]
  createdAt              DateTime                @default(now())
  updatedAt              DateTime                @updatedAt

  @@index([chefStoreId], map: "Menu_chefStoreId_fkey")
  @@fulltext([name, description])
}

字符串
我写的查询如下:

const topCategories = await this.prisma.subCategory.findMany({
  include: {
    menu: {
      where: {
        id: { not: null },
      },
    },
  },
  orderBy: {
    id: 'desc',
  },
  take: 50,
});


但它给我的错误是"Argument而不是must not be null."

bvjveswy

bvjveswy1#

我的意思是,menu永远不会为null,因为它是一个数组,它将只是一个空数组。Menu id在您的架构中也不能为null。
但是如果你的意思是你想找到至少有一个菜单的subCategory,那么我认为你需要使用some关系过滤器和空参数(docs):

const topCategories = this.prisma.subCategory.findMany({
    where: {
      menu: {
        some: {},
      },
    },
    include: {
      menu: true,
    },
    orderBy: {
      id: 'desc',
    },
    take: 50,
  });

字符串

相关问题