如何在cypher中命名子表达式以提高可读性和重用性?

时间:2016-02-16 17:51:18

标签: neo4j refactoring cypher

例如,假设我的很多查询都使用了作为堂兄的想法。他们可能会描述“ b a ”的堂兄,

(a)-[:PARENT]->()-[:PARENT]->(grandparent)<-[:PARENT]-()<-[:PARENT]-(b)

有没有办法给这块逻辑命名,所以我可以做更多的事情:

(a)-[:COUSIN]-(b)

然后在阅读其他查询时会更清楚他们使用相同的结构,当我发现“堂兄”的定义有错误时,我只有一个地方可以修复它。

1 个答案:

答案 0 :(得分:3)

你所描述的是隐含的关系。堂兄弟之间存在关系,它只是没有在图表中明确建模。因此,您可以做的一件事是在图表中的所有堂兄弟之间建立关系,然后直接使用COUSIN关系。