题
我有一个图形,其中每个连接的组件都有一定的标签,让我们说Comp1,Comp2等。我想制作一个Cypeher查询,返回具有多个节点的所有标签。
我得到这样的所有标签:
match (n) return labels(n)
.
所以我试图做这样的事情,以便只能获得我需要的标签:
match (n) with labels(n) as lb where count(k:lb[0]) >= 2) return lb limit 10
.
但我得到一个语法错误:
无效输入')':预期数字,'。','e',空格,节点标签, '[',“=〜”,在,“*”,'/','%','^','+',' - ','<','>',“<=”,“>=”, '=',“<>”,“!=”,以及xor,或,加载csv,start,match,beakind,merge, 创建,设置,删除,删除,foreach,with,return,Union,';'或结束 输入(第1行,第57栏)
我还想通过具有该标签的节点数量来订购标签...
解决方案
与2.1
match (n)
unwind labels(n) as l
with l,count(*) as cnt
where cnt > 2
return l
. 其他提示
如果您使用neo4j版本2.0这样做,您可以通过此Cypher查询来实现您想要的内容:
Start n=node(*)
match (n)-->() with n,count(*) as rel_cnt where rel_cnt >= 2 return n;
.
但是,请注意,此查询将横向整个图形,因此,将其限制为某些标签可能是一个好主意。欢呼。
更新
我将问题视为一个以上的节点,我的坏。此查询不会执行OP问的内容。
不隶属于 StackOverflow