【发布时间】:2014-07-20 10:51:57
【问题描述】:
今天我正在为图表的某些部分编写 DELETE 查询,但OPTIONAL MATCH 遇到了一些问题。
首先是示例图:
http://console.neo4j.org/r/micnvv
和
http://console.neo4j.org/?id=og6d9s
我想编写一个删除所有foo 和bar 实例的查询,问题是有时fooParent 将不存在,并且在某些情况下单个foo 不会连接到任何bar .由于这些条件,我决定在OPTIONAL MATCH 查询中匹配fooParent 和bar 节点。
现在在第一个图中(存在fooParent 和bar 节点)我想要的所有内容都匹配(foo1 和所有bar 节点)使用
MATCH (foo:Foo { customId: '1' })
OPTIONAL MATCH foo -[rel]-> bar,(fooParent: FooParent)-[fooParentRel]-> foo
RETURN foo, bar
在第二张图中,我遇到了fooParent 不存在给定foo 的情况,并且相同的查询与bar 节点不匹配 - 如您所见,只有foo 匹配。
我在想OPTIONAL MATCH 是我的方法,但它似乎不起作用。
【问题讨论】: