delete

这是 GraphQL 库版本 7 的文档。对于长期支持 (LTS) 版本 5,请参阅 GraphQL 库版本 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!
}

DeleteInfo 类型是所有 delete 变更的通用返回类型。

单次 delete

您可以通过执行以下 GraphQL 语句来删除单个帖子

mutation {
    deletePosts(where: {
        id: { eq: "6042E807-47AE-4857-B7FE-1AADF522DE8B" }
    }) {
        nodesDeleted
        relationshipsDeleted
    }
}

这会使用在创建帖子后返回的自动生成 ID 来删除帖子。因此,nodesDeleted 等于 1(帖子),并且由于 Post 及其作者之间的 HAS_POST 关系被删除,relationshipsDeleted 也等于 1

嵌套 delete

如果您想删除一个 User 及其所有帖子,可以使用单个嵌套 delete 变更

mutation {
  deleteUsers(where: { name: { eq: "Jane Doe" } }, delete: { posts: {} }) {
    nodesDeleted
    relationshipsDeleted
  }
}
© . All rights reserved.