使用 Prisma 查询 NOT NULL GraphQL

Querying NOT NULL GraphQL with Prisma

架构:

type TrackUser {
  id: ID! @unique
  createdAt: DateTime!
  user: User #note there is no `!`
}
type User {
  id: ID! @unique
  name: String! @unique
}

我想获取所有 TrackUser,其中 User 不为空。查询内容是什么?

这行得通,但我想这只是一个 hack..

query TrackUsersQuery($orderBy: TrackUserOrderByInput!, $where: TrackUserWhereInput, $first: Int, $skip: Int) {
  trackUsers(where: $where, orderBy: $orderBy, first: $first, skip: $skip) {
    id
    createdAt
    user {
      id
      name
    }
  }
}


variables = {
  where: {
    user: {
      name_contains: ''
    }
  }
}

更新:

对于 Prisma2,这里有以下可能性:

对于没有发票的产品,您可以使用以下方式:

const data = await prisma.product.findMany({
    where: {
      invoices: {
        none: {
          id: undefined,
        },
      },
    },
})

对于没有关联产品的发票:

const data = await prisma.invoice.findMany({
    where: {
      productId: null,
    },
})

此处有更多详细信息:https://github.com/prisma/prisma/discussions/3461

这可能是一个查询:

query c {
  trackUsers(where: { NOT: [{ user: null }] }) {
    name
  }
}

在这里您可以看到它在 Playground 中的样子。我在数据模型中为 Trackuser 添加了一个名称,以便能够在没有用户的情况下从那一侧创建它。