数组字段的 findUnique 查询 returns null
findUnique query returns null for array fields
我阅读了 Prisma Relations 文档,它修复了我的 findMany
查询,该查询能够 return 有效数据,但我得到的结果与 findUnique 不一致。
架构
model User {
id Int @id @default(autoincrement())
fname String
lname String
email String
password String
vehicles Vehicle[]
}
model Vehicle {
id Int @id @default(autoincrement())
vin String @unique
model String
make String
drivers User[]
}
Typedefs
const typeDefs = gql'
type User {
id: ID!
fname: String
lname: String
email: String
password: String
vehicles: [Vehicle]
}
type Vehicle {
id: ID!
vin: String
model: String
make: String
drivers: [User]
}
type Mutation {
post(id: ID!, fname: String!, lname: String!): User
}
type Query {
users: [User]
user(id: ID!): User
vehicles: [Vehicle]
vehicle(vin: String): Vehicle
}
'
这个有效
users: async (_, __, context) => {
return context.prisma.user.findMany({
include: { vehicles: true}
})
},
但是,由于某些原因,findUnique 版本不会解析“vehicles”的数组字段
这个不行
user: async (_, args, context) => {
const id = +args.id
return context.prisma.user.findUnique({ where: {id} },
include: { vehicles: true}
)
},
就是这样returns
{
"data": {
"user": {
"id": "1",
"fname": "Jess",
"lname": "Potato",
"vehicles": null
}
}
}
我正在阅读有关片段的内容并试图找到有关 graphql 解析器的文档,但我没有找到任何可以解决此问题的相关内容。
如有任何见解,我们将不胜感激!谢谢!
您需要修复传递给 findUnique
的参数。注意 {
和 }
.
的排列
改变
return context.prisma.user.findUnique({ where: { id } },
// ^
include: { vehicles: true}
)
到
return context.prisma.user.findUnique({
where: { id },
include: { vehicles: true }
})
我阅读了 Prisma Relations 文档,它修复了我的 findMany
查询,该查询能够 return 有效数据,但我得到的结果与 findUnique 不一致。
架构
model User {
id Int @id @default(autoincrement())
fname String
lname String
email String
password String
vehicles Vehicle[]
}
model Vehicle {
id Int @id @default(autoincrement())
vin String @unique
model String
make String
drivers User[]
}
Typedefs
const typeDefs = gql'
type User {
id: ID!
fname: String
lname: String
email: String
password: String
vehicles: [Vehicle]
}
type Vehicle {
id: ID!
vin: String
model: String
make: String
drivers: [User]
}
type Mutation {
post(id: ID!, fname: String!, lname: String!): User
}
type Query {
users: [User]
user(id: ID!): User
vehicles: [Vehicle]
vehicle(vin: String): Vehicle
}
'
这个有效
users: async (_, __, context) => {
return context.prisma.user.findMany({
include: { vehicles: true}
})
},
但是,由于某些原因,findUnique 版本不会解析“vehicles”的数组字段
这个不行
user: async (_, args, context) => {
const id = +args.id
return context.prisma.user.findUnique({ where: {id} },
include: { vehicles: true}
)
},
就是这样returns
{
"data": {
"user": {
"id": "1",
"fname": "Jess",
"lname": "Potato",
"vehicles": null
}
}
}
我正在阅读有关片段的内容并试图找到有关 graphql 解析器的文档,但我没有找到任何可以解决此问题的相关内容。
如有任何见解,我们将不胜感激!谢谢!
您需要修复传递给 findUnique
的参数。注意 {
和 }
.
改变
return context.prisma.user.findUnique({ where: { id } },
// ^
include: { vehicles: true}
)
到
return context.prisma.user.findUnique({
where: { id },
include: { vehicles: true }
})