4

使用 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
  }
}
4

2 回答 2

0

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

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

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

于 2018-11-20T12:33:51.263 回答
0

您可以使用设置替换连接

data: {
    groups: {
        set: {
            id: "3"
        }
    }
}
于 2021-11-21T09:01:11.577 回答