Cypher关系基数

时间:2014-06-10 15:20:21

标签: neo4j cypher cardinality

在neo4j 1.9.7中,有没有办法做一个只返回基数为1的传出关系的密码查询?

e.g

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

在这样的结构中,我想遍历节点并返回仅具有一个传出关系的节点(在示例中为N5和N6)。

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

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做同样的事。

1 个答案:

答案 0 :(得分:3)

不确定这是否有效,而且我目前还没有1.9跑,但过去这样做了。

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