删除节点和边

  • nebula 版本:2.0.0 rc
  • 部署方式: Docker

我现在想实现删除边,有以下限制条件:

  1. 如果两个节点,两个都只有跟对方连接的一条边,则删除边和节点
  2. 如果两个节点,两个都除了和对方连接的一条边,还有其他边,则只删除边
  3. 如果两个节点,其中 A 点除了和对方连接的一条边,还有其他边;B 点只有跟对方连接的一条边,则删除边和节点 B, 保留节点 A.

我的想法是先去分别判断两个点有没有其他边,

GO FROM hash($entityStart) OVER relation;

然后再用

DELETE EDGE relation A->B;
DELETE VERTEX A;

但是这样就必须去循环去判断每个点,所以速度会比较慢。

想问一下有比较方便的 nGQL 可以实现吗?(比如先统一删除所有边,再统一删除所有没有边的单节点,这样比较速度比较快)

drop edge功能是有的。
不过检查 孤儿节点的功能是没有的

检查孤儿节点之后会做吗~

drop edge 和 delete edge 都可以用吗

一般DB不会做孤儿检点检查的,你有见过什么同行有提供过这个功能吗?我没有留意过。

我还没用过其它的库。就是根据自己的场景在想有没有办法去优化删除节点和边的方式,因为不是很想一个个去循环检查是否是孤儿节点。。 :joy: :joy:

孤儿节点是合法的行为,感觉没必要检查吧。这种不是DB干的吧,数仓倒是可以搞。

我主要是想批量删除孤儿节点

现在还没有这功能,我们下周内部需求评审,确认下这个需求吧。

嗯嗯好的呀~~~