Neo4j2.0如何通过标签和属性获取节点

时间:2014-02-08 05:50:57

标签: neo4j

我正在使用Neo4j 2.0。我用Label X和一个唯一的属性Y创建了许多节点。我的意思是,对于带有Label X的不同节点,这个属性Y是不同的。

我正在使用Embedded-neo4j。如果给定标签X和属性Y,我们如何使用Java API获取节点.U如何获得对节点的引用?

请帮帮我。

3 个答案:

答案 0 :(得分:2)

您可以使用Java API执行Cypher查询:

match (n:X {Y:"propertyValue"}) return n

其中X是标签名称,Y是属性名称

答案 1 :(得分:1)

在使用Embedded的Neo4j 2.1.6中,它可以完成:

Iterable<Node> lNodes =database.findNodesByLabelAndProperty(DynamicLabel.label("LabelInString"), "Name of Propery", lPropertyValue);

其中database是GraphDatabaseService的实例。

答案 2 :(得分:0)

您是指节点中的唯一属性Y或属性Y的唯一属性值。如果节点标签X中有唯一的属性Y,则可以在

下面执行
GraphDatabaseService graphService =new GraphDatabaseFactory().newEmbeddedDatabase(DB_PATH);
ExecutionEngine engine = new ExecutionEngine(graphService);
String label = "X";
String property ="Y";
String query = "MATCH (n:"+label+") WHERE has(n."+property+") return n";
ExecutionResult result = engine.execute(query);
ResourceIterator<Node> resultIterator = result.columnAs("n");
Node resultNode = null;
if(resultIterator.hasNext()){
   resultNode = resultIterator.next();
}