我有一个图表,其中每个连接的组件都有一个标签,让我们说comp1,comp2等。我想做一个cypher查询,返回所有具有多个节点的标签。 我得到了这样的所有标签:
match (n) return labels(n)
所以我尝试做这样的事情,以便只获得我需要的标签:
match (n) with labels(n) as lb where count(k:lb[0]) >= 2) return lb limit 10
但是我收到语法错误:
无效的输入')&#39 ;:预期的数字,'。',' E',空格,节点标签, ' ['," =〜",IN,IS,' *',' /','% ',' ^',' +',' - ','<',' >',"< =","> =", ' =',"<>","!=",AND,XOR,OR,LOAD CSV,START,MATCH,UNWIND,MERGE , CREATE,SET,DELETE,REMOVE,FOREACH,WITH,RETURN,UNION,&#39 ;;'或结束 输入(第1行,第57列)
我还想根据具有该标签的节点数来订购标签......
答案 0 :(得分:2)
如果您使用Neo4j 2.0版进行此操作,您可以通过此密码查询实现您想要的效果:
Start n=node(*)
match (n)-->() with n,count(*) as rel_cnt where rel_cnt >= 2 return n;
但请注意,此查询将横跨整个图形,因此,将其限制为某些标签可能是个好主意。欢呼声。
<强>更新强>
我把这个问题看成是有超过1个关系的节点,我的不好。这个查询不会做OP所要求的。
答案 1 :(得分:0)
2.1
match (n)
unwind labels(n) as l
with l,count(*) as cnt
where cnt > 2
return l