【发布时间】:2020-02-22 12:07:20
【问题描述】:
考虑以下架构,其中橙色节点的类型为 Friend,粉色节点的类型为 fbUser。
我尝试编写的查询如下:
我正在尝试匹配在特定时间范围内具有特定名称的所有节点,并且 可选地与每个 Friend 节点、每个
tagged_together关系相关
所以我写了以下查询:
MATCH x=(:fbUser {graph_information:['admin', 'facebook']})--(f:Friend)
OPTIONAL MATCH y=(f)-[s:TAGGED_TOGETHER]-(d:Friend)
WITH x,f,y,d,s
WHERE
f.name=~ '(?i).*ruggeri.*' AND
f.timestamp>'2016-02-22' AND f.timestamp<'2020-02-22' AND
d.timestamp>'2016-02-22' AND d.timestamp<'2020-02-22'
RETURN x,y
在这种特定情况下,输出正确是我想要的,实际上我有这个:
但是如果使用这一行运行查询
WHERE
f.name=~ '(?i).*kirby.*' AND
f.timestamp>'2016-02-22' AND f.timestamp<'2020-02-22' AND
d.timestamp>'2016-02-22' AND d.timestamp<'2020-02-22'
我期待这个输出
但我收到(no changes, no records)
为什么?
到目前为止,我的理解是,如果可选匹配没有任何结果,它会返回 null。
【问题讨论】: