同一方向,同一边类型,如何将他们合并成一条

假设我的测试数据是这样的

nebula> CREATE SPACE IF NOT EXISTS test (vid_type=FIXED_STRING(30));
nebula> USE test;
nebula> CREATE EDGE IF NOT EXISTS e1(p1 int);
nebula> CREATE TAG IF NOT EXISTS person(p1 int);
nebula> INSERT VERTEX person(p1) VALUES "1":(1);
nebula> INSERT VERTEX person(p1) VALUES "2":(2);
nebula> INSERT VERTEX person(p1) VALUES "3":(1);
nebula> INSERT VERTEX person(p1) VALUES "4":(2);
nebula> INSERT EDGE e1(p1) VALUES "1"->"2"@0:(10);
nebula> INSERT EDGE e1(p1) VALUES "1"->"2"@1:(11);
nebula> INSERT EDGE e1(p1) VALUES "1"->"2"@2:(12);
nebula> INSERT EDGE e1(p1) VALUES "1"->"2"@3:(13);
nebula> INSERT EDGE e1(p1) VALUES "1"->"2"@4:(14);
nebula> INSERT EDGE e1(p1) VALUES "1"->"2"@5:(15);
nebula> INSERT EDGE e1(p1) VALUES "1"->"2"@6:(16);
nebula> INSERT EDGE e1(p1) VALUES "2"->"1"@7:(15);
nebula> INSERT EDGE e1(p1) VALUES "2"->"1"@8:(16);

其中 1 → 2 有7条、2->1有两条

怎么样将同一方向 1->2 多条合并成一条 或 2->1 多条合并成一条

因为它们是不同的边实例,如果要合并那么合并之后以谁的为合并后的数据呢。所以你还是要手动查出来你想合并的边然后手动去删除边。
比如你的例子里边 “1”->“2” 的七条边你希望合并后只剩下 rank 是 3,属性是 13 的边,那你就用 delete 把其余的边删除。现在只能这样做了。

不过 ngql 现在对 批量 DML 需求的支持确实还做得不够,比如 cypher 中通过变量做批量 DML(类似 match (v) remove/merge/create (v)-[]->() … 这样的语法) ngql 目前是做不到的。

此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。