用 Prisma 覆盖整个关系字段?
Overide entire relation field with Prisma?
使用 Prisma 是否可以完全覆盖关系而不是连接和断开单个节点?
假设我有一个用户与第 1 组和第 2 组有组关系:
user: {
id: "abcd"
groups: [
{id: 1},
{id: 2}
]
}
如果我想让这个用户只连接到组 3:
user: {
id: "abcd"
groups: [
{id: 3}
]
}
我必须这样做吗?:
mutation {
updateUser(
where: { id: "abcd" }
data: {
groups: {
disconnect: {
id: "1"
id: "2"
}
connect: {
id: "3"
}
}
}
) {
id
}
}
或者有什么方法可以覆盖整个关系:
mutation {
updateUser(
where: { id: "abcd" }
data: {
groups: [{id:3}]
}
) {
id
name
}
}
我相信您要找的是 API 类似于 scalar lists:
mutation {
createUser(data: {
scores: { set: [1, 2, 3] }
friends: { set: ["Sarah", "Jane"] }
throws: { set: [false, false] }
}) {
id
}
}
Prisma 目前无法做到这一点,但已经有一个 open feature request 可以实现该功能,如果您对该功能感兴趣,请留下您的信息。
您可以使用设置替换连接
data: {
groups: {
set: {
id: "3"
}
}
}
使用 Prisma 是否可以完全覆盖关系而不是连接和断开单个节点?
假设我有一个用户与第 1 组和第 2 组有组关系:
user: {
id: "abcd"
groups: [
{id: 1},
{id: 2}
]
}
如果我想让这个用户只连接到组 3:
user: {
id: "abcd"
groups: [
{id: 3}
]
}
我必须这样做吗?:
mutation {
updateUser(
where: { id: "abcd" }
data: {
groups: {
disconnect: {
id: "1"
id: "2"
}
connect: {
id: "3"
}
}
}
) {
id
}
}
或者有什么方法可以覆盖整个关系:
mutation {
updateUser(
where: { id: "abcd" }
data: {
groups: [{id:3}]
}
) {
id
name
}
}
我相信您要找的是 API 类似于 scalar lists:
mutation {
createUser(data: {
scores: { set: [1, 2, 3] }
friends: { set: ["Sarah", "Jane"] }
throws: { set: [false, false] }
}) {
id
}
}
Prisma 目前无法做到这一点,但已经有一个 open feature request 可以实现该功能,如果您对该功能感兴趣,请留下您的信息。
您可以使用设置替换连接
data: {
groups: {
set: {
id: "3"
}
}
}