如何通过Neo2.x中的标签获取节点或遍历

时间:2014-03-01 11:27:44

标签: neo4j java-api

例如,我有几个朋友有标签,如老师,医生,歌手。我怎样才能得到所有老师朋友?我可以通过Cypher实现我的目标,但我想要更有效的方法,如Java-api函数。

我的意思是我想从节点“I”获取所有节点,所以以下方式对我不起作用

GlobalGraphOperations.at(graphDb).getAllNodesWithLabel(DynamicLabel.label('teacher'));

任何人都可以给我一些建议。

1 个答案:

答案 0 :(得分:2)

这个怎么样:

Node me = graphDb.findNodesByLabelAndProperty(DynamicLabel.label("Person"), "name", "Me")
for(Relationship rel : me.getRelationships(Direction.OUTGOING, DynamicRelationshipType.withName("KNOWS")) {
  System.out.println("My teacher friend: " + rel.getEndeNode());
}

这相当于这个Cypher

MATCH (me:Person {name:"Me"})-[:KNOWS]->(teacher) RETURN teacher

另请参阅手册部分Using Neo4j embedded in Java applications