我是Cypher的新手,正在努力做一个基本的过滤器。
鉴于以下型号,我只想检索“d2”。
a1-
| \c1
| / \
b1- \d1
/
a2- /
\c2
/
b2-
a3-
| \c3--d2
| /
b3-
我看到了确定缺失部分的事情:
(match (a)--(c)--(d) WHERE NOT (a)--(b)--(c) return d)
给了我“d1”。
如何从给定列表(d1,d2)执行WHERE ALL (a)--(b)
或从上面的查询(d1)中删除一组节点?
答案 0 :(得分:0)
发现我认为是一种肮脏的方式(猜测性能会很糟糕),但确实如此:
match (a)--(c)--(b), (c)--(d)
where not (a)--(b)
with collect(d) as excluded
match (a)--(c)--(b)--(a), (c)--(d)
where NOT d IN excluded
return d;
任何更好的主意都会很棒: - )