一个关系包含多个rank,如何全部删除?

如何用ngql删除据有多个rank的关系?只能一个rank一个rank地删除吗?

nebula版本:v1.2.0

不太明白您说的有多个rank的关系是什么意思?rank在Nebula Graph中用于描述一条边的四元组的其中一部分。

就是同一类型多条边是用多个rank表示的嘛,我想要快速删除所有的边

你的意思是如下四个edge都删除?还是只保留一个?
src1_edgetype_rank1_dst1
src1_edgetype_rank2_dst1
src1_edgetype_rank3_dst1
src1_edgetype_rank4_dst1

都删除~

我现在是在代码里做了个for循环,伪代码如下

for rankI in [0,1,2,3,4,5]:
    graphClient.execute_query("DELETE EDGE src->dst@{rankI}")

相当于不管这个边存不存在,从rank=0删到rank=5,但是感觉这方法太蠢了

GO FROM “player100” OVER follow
WHERE follow._dst == “team204”
YIELD follow._src AS src, follow._dst AS dst, follow._rank AS rank
| DELETE EDGE follow $-.src->$-.dst @ $-.rank;

通过类似于这样的语句可以满足你的需求吗?先查询满足条件的边,然后用管道符号输入给delete

可是v1.2.0的nGQL的delete似乎不支持管道欸

奥,不好意思!确实之前的一些版本能力存在不足。现在看如果还是用1.2.0,那有些能力只能是应用结合图数据库一起使用。即使后续版本,也偶尔会出现类似的现象。

浙ICP备20010487号