2014-02-08 139 views
1

我正在使用Neo4j 2.0。我创建了许多带有标签X和唯一属性Y的节点。我的意思是,对于带有标签X的不同节点,此属性Y不同。Neo4j2.0如何通过标签和属性获取节点

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

请帮帮我。

回答

2

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

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

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

0

你的意思是独特的属性Y或ATTRIB的独特属性值Y在节点中。如果你有独特的性能的Y节点标签X,你可以做以下

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(); 
} 
1

在Neo4j的2.1.6采用嵌入式操作系统,它可以做到:

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

其中数据库是GraphDatabaseService的实例。