这个问题是关于之前问题这里的后续。
我有一个包含循环链表的图(这里有一个例子)。链表中的每个节点都指向一个用户。当查询该列表时,我必须使用路径语句,因为该列表是循环的,我不想检索从u:USER节点开始的节点。为了获取感兴趣的节点,我的查询如下:
如何从路径中拆分出类型为NODELINK的节点,以便对它们进行进一步的MATCH查询?
我有一个包含循环链表的图(这里有一个例子)。链表中的每个节点都指向一个用户。当查询该列表时,我必须使用路径语句,因为该列表是循环的,我不想检索从u:USER节点开始的节点。为了获取感兴趣的节点,我的查询如下:
MATCH path=(nl:NODELINK { linkId:'cc' })-[:LINK*]->(u:USER)
RETURN nodes(path)
一旦我获取了路径,我想对该路径中的节点(NODELINK)进行进一步匹配,类似于以下内容:
MATCH path=(nl:NODELINK { linkId:'cc' })-[:LINK*]->(u:USER)
WITH nodes(path) AS nodeLinks
MATCH nodeLinks-[:PERSONLINK]->persons
RETURN persons
但是如果我尝试,就会出现错误:
Error: Type mismatch: nodeLinks already defined with conflicting type Collection<Node> (expected Node) (line 3, column 7)
"MATCH nodeLinks-[:PERSONLINK]->persons"
如何从路径中拆分出类型为NODELINK的节点,以便对它们进行进一步的MATCH查询?