我正在使用一个图形数据库,它有许多节点通过关系TYPE连接到超级节点。并且每个子节点通过FROM关系具有属性。 我应该如何在cypher查询中访问各个节点的属性?
我尝试了这个,但它没有用。
start a=node(2) match (a)<-[:TYPE]-(node) match (node)<-[:FROM]-(prop) where prop.name="ABC" return node;
这里我必须返回一个属性为name
的节点,其值为ABC!?
我该如何纠正呢?
答案 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'。