首页 文章

Cypher查询以获取具有2个以上节点的所有标签

提问于
浏览
1

我有一个图表,其中每个连接的组件都有一个标签,例如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

但是我收到语法错误:

无效输入')':预期数字,' . ','E',空格,节点标签,'[',“=〜”,IN,IS,'*','/','%','^ ','',' - ','<','>',“<=”,“> =”,'=',“<>”,“!=”,AND,XOR,OR,LOAD CSV, START,MATCH,UNWIND,MERGE,CREATE,SET,DELETE,REMOVE,FOREACH,WITH,RETURN,UNION,';'或输入结束(第1行,第57栏)

我还想根据具有该标签的节点数来订购标签......

2 回答

  • 0

    用2.1

    match (n) 
    unwind labels(n) as l
    with l,count(*) as cnt
    where cnt > 2
    return l
    
  • 2

    如果您使用Neo4j 2.0版进行此操作,您可以使用此cypher查询实现您想要的效果:

    Start n=node(*)
        match (n)-->() with n,count(*) as rel_cnt where rel_cnt >= 2 return n;
    

    但请注意,此查询将横跨整个图形,因此,将其限制为某些标签可能是个好主意 . 干杯 .

    UPDATE

    我把这个问题读作有超过1个关系的节点,我的不好 . 这个查询不会做OP所要求的 .

相关问题