边的次数是否可以筛选出来

  • 例如我插入以下边
    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);

  • 我是否可以筛选出e1 edge类型各边数 = 1 才展现出来,上面的数据是 6条边,所以不出来数据

MATCH 语句或者是聚合函数都是可以的

有demo可以看看吗,我是初学者不知道怎么写

MATCH (v)-[e:e1]->() where id(v) in ["1","3","5"] 
WITH id(v) AS vid, collect(e) AS edge where size(edge)==1
RETURN vid
 go from "1","3","5" over e1 yield id($^) AS sVid, id($$) AS eVid | yield $-.sVid AS sVid,collect($-.eVid) AS es | yield $-.sVid where size($-.es)==1 
MATCH (v:player) 
where size((v)-[:e1]->())==1
RETURN id(v)

前两条是指定 vid 用聚合函数算,第三条是指定 tag 用 pattern expression 来描述

谢谢你的回答,但是我想需要的是这种

player101 → player100 是两条次数,所以我期望想得出的是 player105和player102的,排除掉 player100

  • 使用以下语句的话是没有数据出来
MATCH (v)-[e:follow]->() where id(v) in ["player101"] 
WITH id(v) AS vid, collect(e) AS edge1 where size(edge1)==1
RETURN edge1

噢,我理解错你的意思了。
试试这个

MATCH (v)-[e:follow]->(n) where id(v) in ["player101"] 
WITH id(v) AS vid1, id(n) AS vid2 collect(e) AS edge1 where size(edge1)==1
RETURN edge1
2 个赞

谢谢,完美解决

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