使用 Prisma 覆盖整个关系字段?

Eva*_*nss 6 prisma

使用 Prisma 是否可以完全覆盖关系而不是连接和断开单个节点?

假设我有一个用户,其组与组 1 和组 2 相关:

user: {
    id: "abcd"
    groups: [
        {id: 1},
        {id: 2}
    ]
}
Run Code Online (Sandbox Code Playgroud)

如果我想让该用户仅连接到组 3:

user: {
    id: "abcd"
    groups: [
        {id: 3}
    ]
}
Run Code Online (Sandbox Code Playgroud)

我必须这样做吗?:

mutation {
  updateUser(
    where: { id: "abcd" }
    data: {
        groups: {
            disconnect: {
                id: "1"
                id: "2"
            }
            connect: {
                id: "3"
            }
        }
    }
  ) {
    id
  }
}
Run Code Online (Sandbox Code Playgroud)

或者是否有某种方法可以覆盖整个关系:

mutation {
  updateUser(
    where: { id: "abcd" }
    data: {
        groups: [{id:3}]
    }
  ) {
    id
    name
  }
}
Run Code Online (Sandbox Code Playgroud)

nbu*_*urk 2

我相信您正在寻找的是一个类似于标量列表之一的 API :

mutation {
  createUser(data: {
    scores: { set: [1, 2, 3] }
    friends: { set: ["Sarah", "Jane"] }
    throws: { set: [false, false] }
  }) {
    id
  }
}
Run Code Online (Sandbox Code Playgroud)

目前 Prisma 无法做到这一点,但已经有针对该功能的开放功能请求,如果您对该功能感兴趣,请留下您的请求。