如何使用Cypher/neo4j中的量化路径来指定替代步骤?

问题描述 投票:0回答:1
我有一个图表,其中“应用程序”节点使用需要关系或通过中间接口对象直接连接到其他应用节点。 例如:

(:App)-[:CONSUMES]->(:Interface)<-[:PROVIDES]-(:App)

(:App)-[:REQUIRES]->(:App)


我正在尝试使用量化的路径来执行此操作,以跨多个步骤遵循这些关系,因为这使我能够将条件(使用某个子句)应用于每个步骤。但是我很难表达一个事实,即我想在应用程序节点之间的每个替代方案中的每个步骤中都允许每个步骤中的每个步骤。
我在概念上尝试做以下...

MATCH (a0:App {name: "origin"}) ( (a1:App)-[c2:CONSUMES]->(i:Interface)<-[c3:PROVIDES]->(a2:App) | // <- this isn't valid syntax (a3:App)-[c4:REQUIRES]->(a4:App) Where a1.name <> "some condition" ) {1,5} RETURN ....

关于如何描述这种替代方案的任何建议将不胜感激。

今天在单个声明中不可能。这是一个正在考虑的功能(如果可以的话,实际上可能会得到您提出的语法)。目前,您必须在两个qpp's之间进行联合。

MATCH (a0:App {name: "origin"}) ( (a1:App)-[c2:CONSUMES]->(i:Interface)<-[c3:PROVIDES]->(a2:App) Where a1.name <> "some condition" ) {1,5} RETURN .... UNION MATCH (a0:App {name: "origin"}) (a3:App)-[c4:REQUIRES]->(a4:App) Where a1.name <> "some condition" ) {1,5} RETURN ....

您只需要确保两个返回语句返回相同的内容(相同的列)
neo4j cypher neo4jclient
1个回答
0
投票

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.