2014-06-10 16 views
3

有没有办法在neo4j 1.9.7中执行只返回基数为1的输出关系的密码查询?Cypher关系基数

e.g

N2 ----> N4 -----> N10 
|  |-------> N9 
| 
|------> N5 -----> N9 
| 
|------> N6 -----> N9 

在这样我想遍历节点并返回只是仅具有一个输出关系(因此N5和N6中的例子)中的节点的结构。

我可以使用IteratorUtil类来获取计数

Node process = db.getNodeById(2); 

     for(Relationship rel : process.getRelationships(Direction.OUTGOING)) 
     { 
      Node appProcess = rel.getOtherNode(process); 
      if(IteratorUtil.count(appProcess.getRelationships(Direction.OUTGOING).iterator()) == 1) 
      { 
       System.out.println(appProcess.getId()+" is a vital process"); 
       count++; 
      } 
     } 

我愿做相同的Cypher支架Java API的做到这一点。

回答

3

不知道这是否会奏效,目前我还没有运行1.9,但它在过去像这样工作。

START n=node(2) 
MATCH (n)-->(m) 
WHERE length((m)-->()) = 1 
RETURN m 
+0

它工作得像一个魅力;) – Ancelot182