使用 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,
},
})
这可能是一个查询:
query c {
trackUsers(where: { NOT: [{ user: null }] }) {
name
}
}
在这里您可以看到它在 Playground 中的样子。我在数据模型中为 Trackuser 添加了一个名称,以便能够在没有用户的情况下从那一侧创建它。
架构:
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,
},
})
这可能是一个查询:
query c {
trackUsers(where: { NOT: [{ user: null }] }) {
name
}
}
在这里您可以看到它在 Playground 中的样子。我在数据模型中为 Trackuser 添加了一个名称,以便能够在没有用户的情况下从那一侧创建它。