delete
|
这是 GraphQL Library 7 版本的文档。对于长期支持 (LTS) 版本 5,请参考 GraphQL Library 5 LTS 版本。 |
考虑以下类型定义
type Post @node {
id: ID! @id
content: String!
creator: User! @relationship(type: "HAS_POST", direction: IN)
}
type User @node {
id: ID! @id
name: String
posts: [Post!]! @relationship(type: "HAS_POST", direction: OUT)
}
生成以下 delete 变更和响应类型
type DeleteInfo {
nodesDeleted: Int!
relationshipsDeleted: Int!
}
type Mutation {
deletePosts(where: PostWhere, delete: PostDeleteInput): DeleteInfo!
deleteUsers(where: UserWhere, delete: UserDeleteInput): DeleteInfo!
}
|
|
单个 delete
您可以通过执行以下 GraphQL 语句来删除单个帖子
mutation {
deletePosts(where: {
id: { eq: "6042E807-47AE-4857-B7FE-1AADF522DE8B" }
}) {
nodesDeleted
relationshipsDeleted
}
}
这将使用在创建帖子后返回的自动生成的 ID 删除该帖子。因此,nodesDeleted 等于 1(即该帖子),而 relationshipsDeleted 也等于 1,因为 Post 与其作者之间的 HAS_POST 关系被删除了。
嵌套 delete
如果您想删除一个 User 以及其所有帖子,可以使用单个嵌套的 delete 变更。
mutation {
deleteUsers(where: { name: { eq: "Jane Doe" } }, delete: { posts: {} }) {
nodesDeleted
relationshipsDeleted
}
}
欲了解更多关系操作示例,请参阅 关系操作。