我想找到从/到特定节点的所有路径。我希望路径中的每个节点只出现一次。
\n\n例如,在这样的图中:
\n\n(a)-[:REL]->(b)-[:REL]->(c)-[:REL]->(a)\n(a)-[:REL]->(e)-[:REL]->(f)-[:REL]->(a)\n(e)-[:REL]->(b)\nRun Code Online (Sandbox Code Playgroud)\n\n以图形方式:
\n\n e \xe2\x86\x92 b\n \xe2\x86\x99 \xe2\x86\x96 \xe2\x86\x97 \xe2\x86\x98\nf \xe2\x86\x92 a \xe2\x86\x90 c\nRun Code Online (Sandbox Code Playgroud)\n\n密码:
\n\nCREATE (a { name:'A' })-[:REL]->(b {name:'B'})-[:REL]->(c { name:'C' })\n -[:REL]->(a)-[:REL]->(e {name:'E'})-[:REL]->(f {name:'F'})-[:REL]->(a),\n (e)-[:REL]->(b)\nRun Code Online (Sandbox Code Playgroud)\n\n我希望从(a)开始的链研究能够回归
\n\n(a)->(b)->(c)->(a)\n\n(a)->(e)->(f)->(a)\n\n(a)->(e)->(b)->(c)->(a)\nRun Code Online (Sandbox Code Playgroud)\n\n而从 (f) 开始仅返回
\n\n(f)->(a)->(e)->(f)\nRun Code Online (Sandbox Code Playgroud)\n\n并不是
\n\n(f)->(a)->(b)->(c)->(a)->(e)->(f)\nRun Code Online (Sandbox Code Playgroud)\n\n因为它两次通过节点 (a)。
\n\n我尝试过:
\n\nMATCH p=(a {name:'F'})-[:REL*1..]->(a) \nWHERE SINGLE(e1 IN TAIL(NODES(p)) WHERE SINGLE(e2 IN TAIL(NODES(p)) WHERE e1=e2))\nRETURN p\nRun Code Online (Sandbox Code Playgroud)\n\n但我没有得到结果。\n我能达到的最好结果是不重复此查询的起始节点:
\n\nMATCH p=(a {name:'F'})-[:REL*1..]->(a) \nWHERE SINGLE(e IN TAIL(NODES(p)) WHERE …Run Code Online (Sandbox Code Playgroud)