在下面的查询中,第二个匹配模式是否在第一个匹配john-[r?:HAS_SEEN]->(movie)的结果上运行john-[:IS_FRIEND_OF]->(user)-[:HAS_SEEN]->(movie).我试图理解这是否类似于unix管道概念,即第一个模式的结果是第二个模式的输入.
start john=node(1)
match
john-[:IS_FRIEND_OF]->(user)-[:HAS_SEEN]->(movie),
john-[r?:HAS_SEEN]->(movie)
where r is null
return movie;
Run Code Online (Sandbox Code Playgroud)
我不认为我会将多个MATCH子句与UNIX管道概念进行比较.使用多个逗号分隔的匹配只是打破用单个句子写入关系的一维约束的一种方法.例如,以下内容完全有效:
MATCH a--b,
b--c,
c--d,
d--e,
a--c
Run Code Online (Sandbox Code Playgroud)
在最后,我回去并引用a,c即使它们之前没有在子句中使用过.同样,这只是通过仅使用一维句子来绘制两个维度的关系价值的方式.我们正在绘制一个包含多个1维片段的二维图片.
在旁注中,我将把该WITH子句与UNIX管道进行比较- 我称之为类似.WITH将它找到的任何结果输出到你给它的下一组条款中.