我正在尝试获取节点"A";从而它不与任何";B";或者B与";C";。
这是我现在的问题:
MATCH (a:A)
OPTIONAL MATCH (a) -- (b:B), (b) -- (c:C)
WITH *
WHERE (
b IS NULL
OR
c IS NULL
)
RETURN *
";a";结果是正确的。问题是;b";总是为null("c"也是,但这是意料之中的(。
我没有在where中使用关系谓词,因为我需要这些节点。这是一个简单的例子,但我正在链接更多的关系级别和更多的过滤器(and&OR(
您的问题是需要将OPTIONAL MATCH
拆分为两个匹配项。
MATCH (a:A)
OPTIONAL MATCH (a) -- (b:B)
OPTIONAL MATCH (b) -- (c:C)
WITH *
WHERE (
b IS NULL
OR
c IS NULL
)
RETURN *
当您执行单个OPTIONAL MATCH
时,您正在搜索一个完整的模式,如果它不存在,则不会返回。