即使未找到相关对象,如何返回节点?

问题描述 投票:0回答:1

我正在尝试通过 id 获取父节点及其相关节点。它工作正常,但是当我尝试按某些标准过滤相关节点时,当相关节点未通过给定的标准或过滤器时,不会返回父节点本身

MATCH (obj{CId:"AT11"})
OPTIONAL MATCH (obj)-[r]->(related)
WHERE related.Created >= "2024-03-03" AND related.Created <= "2024-03-06" 
WITH obj,related
WHERE related.CId CONTAINS 'AT' 
RETURN obj, related

即使相关为空,我也希望返回 obj。就我而言,即使 obj 存在,两者都返回 null

我尝试删除一些过滤器,我意识到仅使用一个 where 子句工作正常,但使用多个 where 子句似乎是问题所在。

neo4j neo4jclient neo4j-aura
1个回答
0
投票

所有

related
过滤都应该在
WHERE
OPTIONAL MATCH
子句中完成:

MATCH (obj {CId:"AT11"})
OPTIONAL MATCH (obj)-->(related)
WHERE "2024-03-03" <= related.Created <= "2024-03-06" AND related.CId CONTAINS 'AT'
RETURN obj, related

注意:此查询还使用链式比较来表示日期。

© www.soinside.com 2019 - 2024. All rights reserved.