我有一个图形,其中每个连接的组件都有一定的标签,让我们说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问的内容。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top