【发布时间】:2018-02-27 17:16:48
【问题描述】:
我目前正在使用 Neo4j 并尝试构建适合我用例的 Cypher 查询。我有一个具有以下结构的图表。
(NODE_A)-RELATION_A->(NODE_B)-RELATION_B->(NODE_A)-RELATION_A-> ... 重复 ...
我知道第一个 NODE_A 并希望每个后续的 NODE_A 和 NODE_B 都匹配两个关系(RELATION_A 和 RELATION_B)。如果我构造一个密码查询,它看起来像这样。
MATCH (a:NODE_A)-[:RELATION_A]->(b:NODE_B)-[:RELATION_B]-(c:NODE_A) WHERE id(a)=1 RETURN [a,b,c] as result
但这只会返回模式:NODE_A-RELATION_A->NODE_B-RELATION_B->NODE_A
如果我遗漏了WHERE id(a) = 1,它会得到正确的结果,但它会返回所有与模式匹配的节点。
如何指定执行查询的起始节点?
【问题讨论】:
标签: design-patterns neo4j cypher relation repeat