在Cypher,除非我遗漏了什么,为什么我不能这样做:
match(m:Movie)
where not m.title in (match (bm:BadMovie) return bm.title)
return m
Run Code Online (Sandbox Code Playgroud)
但必须通过中间的WITH:
with match (bm:BadMovie) return collect(bm.title) as badTitles
match(m:Movie)
where not m.title in badTitles
return m
Run Code Online (Sandbox Code Playgroud)
在SQL中,我只是这样做:
select * from Movie where title not in (select title from BadMovie)
Run Code Online (Sandbox Code Playgroud)
另外,我并不特别喜欢通过"收集"来做这件事,因为我担心大量的内存成本.我宁愿让引擎推断出最好的查找方式.
我没有这些节点之间的关系,也不想要一个.我只是好奇为什么在另一个节点中不允许返回一系列节点的表达式.
谢谢