如何删除给定类型的所有节点?

How to delete all nodes with a given type?

https://dgraph.io/tour/schema/8/

显示一些删除选项

  1. 删除一个三元组
  2. 删除给定边的所有三元组
  3. 删除给定节点的所有三元组

现在我想删除给定类型节点的所有三元组。我假设这是通过某种查询组合完成的,该查询 select 是给定类型的节点,然后是每个节点的突变。我在教程中找不到这方面的示例。

假设我想删除国家类型节点的所有三元组。

我知道如何 select 节点的 uid:

    {  
      query(func: has(<dgraph.type>)) @filter(eq(<dgraph.type>, "Country")) {
        uid
      }
    }

但是我如何将它与突变结合起来呢?

https://discuss.dgraph.io/t/how-to-bulk-delete-nodes-or-cascade-delete-nodes/7308

似乎要求“upsert”

如何删除具有给定类型的节点的所有三元组?

以下 upsert 似乎有效:

upsert {  
  query {
    # get the uids of all Country nodes
     countries as var (func: has(<dgraph.type>)) @filter(eq(<dgraph.type>, "Country")) {
        uid
    }
  }
  mutation {
    delete {
      uid(countries) * * .
    }
  }
}