返回具有所选属性的节点

时间:2013-12-07 05:35:35

标签: neo4j cypher

我正在使用一个图形数据库,它有许多节点通过关系TYPE连接到超级节点。并且每个子节点通过FROM关系具有属性。 我应该如何在cypher查询中访问各个节点的属性?

我尝试了这个,但它没有用。

start a=node(2) match (a)<-[:TYPE]-(node) match (node)<-[:FROM]-(prop) where prop.name="ABC" return node;

这里我必须返回一个属性为name的节点,其值为ABC!? 我该如何纠正呢?

1 个答案:

答案 0 :(得分:3)

START a=node(2) 
MATCH (a)<-[:TYPE]-(node)<-[:FROM]-(prop)
WHERE prop.name="ABC" 
RETURN node;

您也可以使用索引执行此操作:

START a=node:properties('name:ABC')
MATCH (node)<-[:FROM]-(a)

其中'properties'是索引,其名称为'ABC'。要意识到您的上述查询仅对与FROM相关的节点感兴趣,因此与简单地使用索引相比,第一个示例中的搜索可能会非常长。

如果您使用的是Neo4j 2.x,那么使用标签会好得多。

MATCH (a:Property(name='ABC'))-[:FROM]->(node)
RETURN node

在创建/更新属性节点时,您可以在何处设置标签'Property'。