【发布时间】:2013-08-12 16:18:57
【问题描述】:
我的图表是这样的
medium-[:firstChapter]->chapter1-[:nextChapter]->chapter2_to_N
只有一个节点通过 :firstChapter 连接,然后可能有多个节点通过 :nextChapter 连接
我尝试将所有通过关系 :firstChapter 连接到 medium 或通过 :nextChapter 从一章连接到另一章的节点进行匹配
我尝试的查询看起来像这样
start n=node(543) match n-[:firstChapter|nextChapter*]->m return m;
node(543) 是节点介质。 令人惊讶的是,此查询返回路径中的所有节点,即使这些节点未连接到 n(=medium 节点) 如果我在 nextChapter 之后省略 * 符号,则仅返回具有 :firstChapter 关系的第一个节点(第 1 章),这似乎是正确的。
start n=node(543) match n-[:firstChapter|nextChapter*]->m return m;
为什么上面的查询返回节点未连接到n?据我了解,* 符号通常会返回无限数量关系的节点,对吧?
将通过 :firstChapter 或 :nextChapter 连接到起始节点的路径的所有节点(仅一次)匹配的最佳方法是什么?在这种情况下所有章节
上面的查询就是为了这个目的,但我不认为输出是正确的......
编辑: 添加了图表以进行澄清。 如您所见,第一章只能通过 :firstChapter 到达, 所以目前还不清楚,为什么上面的查询会返回所有章节节点
【问题讨论】: